Partilhar via


EventProcessorClient.ProcessErrorAsync Evento

Definição

Executa as tarefas necessárias quando ocorre uma exceção inesperada dentro da operação da infraestrutura do processador de eventos. A implementação é obrigatória.

Esse manipulador de erros é invocado quando há uma exceção observada dentro do EventProcessorClient próprio ; ele não é invocado para exceções no código que foi implementado para processar eventos ou outros manipuladores de eventos e pontos de extensão que executam o código do desenvolvedor. O EventProcessorClient fará todos os esforços para se recuperar de exceções e continuar o processamento. Caso uma exceção que não possa ser recuperada seja encontrada, o processador tentará perder a propriedade de todas as partições que estava processando para que o trabalho possa ser redistribuído.

As exceções apresentadas a esse método podem ser fatais ou não fatais; porque o processador pode não conseguir prever com precisão se uma exceção foi fatal ou se seu estado foi corrompido, esse método tem a responsabilidade de determinar se o processamento deve ser encerrado ou reiniciado. Se desejado, isso pode ser feito com segurança chamando StopProcessingAsync(CancellationToken) e/ou StartProcessingAsync(CancellationToken).

É recomendável que, para cenários de produção, a decisão seja tomada considerando observações feitas por esse manipulador de erros, o método invocado ao inicializar o processamento de uma partição e o método invocado quando o processamento de uma partição é interrompido. Muitos desenvolvedores também incluirão dados de suas plataformas de monitoramento nessa decisão.

Assim como acontece com o processamento de eventos, se ocorrer uma exceção no código do manipulador de erros, o processador de eventos permitirá que ele seja bolha e não tentará lidar com isso de forma alguma. Os desenvolvedores são altamente incentivados a levar em conta cenários de exceção e se proteger contra eles usando blocos try/catch e outros meios conforme apropriado.

public event Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs,System.Threading.Tasks.Task> ProcessErrorAsync;
member this.ProcessErrorAsync : Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs, System.Threading.Tasks.Task> 
Public Custom Event ProcessErrorAsync As Func(Of ProcessErrorEventArgs, Task) 

Tipo de evento

Exceções

Se for feita uma tentativa de remover um manipulador que não corresponda ao manipulador atual registrado.

Se for feita uma tentativa de adicionar um manipulador quando um estiver registrado no momento.

Comentários

Esse manipulador será invocado simultaneamente e não será aguardado pelo processador, pois cada erro é independente. Nenhum limite de tempo é imposto a uma invocação desse manipulador; É seguro que as implementações executem operações de longa execução e novas tentativas conforme necessário.

Aplica-se a

Confira também