EventProcessorClient.ProcessErrorAsync Evento

Definición

Realiza las tareas necesarias cuando se produce una excepción inesperada dentro del funcionamiento de la infraestructura del procesador de eventos. La implementación es obligatoria.

Este controlador de errores se invoca cuando se observa una excepción dentro de sí EventProcessorClient ; no se invoca para excepciones en el código que se han implementado para procesar eventos u otros controladores de eventos y puntos de extensión que ejecutan código de desarrollador. EventProcessorClient hará todo lo posible para recuperarse de las excepciones y continuar el procesamiento. Si se encuentra una excepción que no se puede recuperar, el procesador intentará perder la propiedad de todas las particiones que estaba procesando para que se pueda redistribuir el trabajo.

Las excepciones expuestas a este método pueden ser fatales o no fatales; dado que es posible que el procesador no pueda predecir con precisión si una excepción era grave o si su estado estaba dañado, este método tiene la responsabilidad de tomar la determinación de si el procesamiento debe finalizarse o reiniciarse. Si lo desea, esto se puede hacer de forma segura llamando a StopProcessingAsync(CancellationToken) y/o StartProcessingAsync(CancellationToken).

Se recomienda que, en escenarios de producción, la decisión se tome teniendo en cuenta las observaciones realizadas por este controlador de errores, el método invocado al inicializar el procesamiento de una partición y el método invocado cuando se detiene el procesamiento de una partición. Muchos desarrolladores también incluirán datos de sus plataformas de supervisión en esta decisión.

Al igual que con el procesamiento de eventos, si se produce una excepción en el código del controlador de errores, el procesador de eventos le permitirá burbujar y no intentará controlarlo de ninguna manera. Se recomienda encarecidamente a los desarrolladores tener en cuenta escenarios de excepción y protegerse contra ellos mediante bloques try/catch y otros medios según corresponda.

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

Excepciones

Si se intenta quitar un controlador que no coincide con el controlador actual registrado.

Si se intenta agregar un controlador cuando se registra uno actualmente.

Comentarios

Este controlador se invocará simultáneamente y el procesador no lo espera, ya que cada error es independiente. No se impone ningún límite de tiempo en una invocación de este controlador; es seguro para que las implementaciones realicen operaciones de larga duración y reintentos según sea necesario.

Se aplica a

Consulte también