EventProcessorClient Clase

Definición

Permite consumir y procesar eventos en todas las particiones de un centro de eventos determinado dentro del ámbito de un grupo de consumidores específico.  El procesador es capaz de colaborar con otras instancias para que el mismo centro de eventos y el mismo emparejamiento de grupos de consumidores compartan trabajo mediante una plataforma de almacenamiento común para comunicarse.  La tolerancia a errores también está integrada, lo que permite que el procesador sea resistente frente a errores.

public class EventProcessorClient : Azure.Messaging.EventHubs.Primitives.EventProcessor<Azure.Messaging.EventHubs.Primitives.EventProcessorPartition>
type EventProcessorClient = class
    inherit EventProcessor<EventProcessorPartition>
Public Class EventProcessorClient
Inherits EventProcessor(Of EventProcessorPartition)
Herencia

Comentarios

Para permitir la coordinación para el uso compartido de particiones entre EventProcessorClient instancias, aserten el acceso de lectura exclusivo a las particiones para el grupo de consumidores. Ningún otro lector debe estar activo en el grupo de consumidores que no sea los procesadores que tengan previsto colaborar. Se denegará el acceso a los lectores no exclusivos; los lectores exclusivos, incluidos los procesadores que usan ubicaciones de almacenamiento diferentes, interferirán con el rendimiento y el funcionamiento del procesador.

EventProcessorClient es seguro almacenar en caché y usar durante la vigencia de una aplicación, y es recomendable cuando la aplicación procesa eventos periódicamente o semestralmente. El procesador es responsable de garantizar un uso eficaz de la red, la CPU y la memoria. Si se llama a o StopProcessingAsync(CancellationToken)StopProcessing(CancellationToken) cuando se completa el procesamiento o cuando se cierra la aplicación, se asegurará de que los recursos de red y otros objetos no administrados se limpien correctamente.

Constructores

EventProcessorClient()

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, EventProcessorClientOptions)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, AzureNamedKeyCredential, EventProcessorClientOptions)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, AzureSasCredential, EventProcessorClientOptions)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, EventProcessorClientOptions)

Inicializa una nueva instancia de la clase EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, TokenCredential, EventProcessorClientOptions)

Inicializa una nueva instancia de la clase EventProcessorClient.

Propiedades

ConsumerGroup

Nombre del grupo de consumidores al que está asociado este procesador de eventos. Los eventos serán de solo lectura en el contexto de este grupo.

EventHubName

Nombre del centro de eventos al que está conectado el procesador, específico del espacio de nombres de Event Hubs que lo contiene.

FullyQualifiedNamespace

Espacio de nombres completo de Event Hubs al que está asociado el procesador. Es probable que sea similar a {yournamespace}.servicebus.windows.net.

Identifier

Nombre único que se usa para identificar este procesador de eventos.

IsRunning

Indica si este procesador de eventos se está ejecutando actualmente.

RetryPolicy

Directiva activa que rige los reintentos para el procesador.

(Heredado de EventProcessor<TPartition>)

Métodos

ClaimOwnershipAsync(IEnumerable<EventProcessorPartitionOwnership>, CancellationToken)

Intenta reclamar la propiedad de las particiones especificadas para su procesamiento. Este método se usa mediante el equilibrio de carga para permitir que las instancias del procesador de eventos distribuyan la responsabilidad de procesar particiones para un centro de eventos determinado y el emparejamiento de grupos de consumidores entre los procesadores de eventos activos.

CreateConnection()

Crea un objeto EventHubConnection que se usará para comunicarse con el servicio Event Hubs.

GetCheckpointAsync(String, CancellationToken)

Devuelve un punto de control para el centro de eventos, el grupo de consumidores y el identificador de partición asociados a la instancia del procesador de eventos, de modo que el procesamiento de una partición determinada se pueda inicializar correctamente.

ListOwnershipAsync(CancellationToken)

Genera una lista de las asignaciones de propiedad para las particiones entre cada una de las instancias de procesador de eventos de cooperación para un centro de eventos y un emparejamiento de grupos de consumidores determinado. Este método se usa al equilibrar la carga para permitir que el procesador detecte otros colaboradores activos y tome decisiones sobre cómo equilibrar mejor el trabajo entre ellos.

ListPartitionIdsAsync(EventHubConnection, CancellationToken)

Consulta los identificadores de las particiones de Event Hubs.

(Heredado de EventProcessor<TPartition>)
OnInitializingPartitionAsync(EventProcessorPartition, CancellationToken)

Realiza las tareas para inicializar una partición y su contexto asociado para el procesamiento de eventos.

OnInitializingPartitionAsync(TPartition, CancellationToken)

Realiza las tareas para inicializar una partición y su contexto asociado para el procesamiento de eventos.

(Heredado de EventProcessor<TPartition>)
OnPartitionProcessingStoppedAsync(EventProcessorPartition, ProcessingStoppedReason, CancellationToken)

Realiza las tareas necesarias cuando se detiene el procesamiento de una partición. Esto suele ocurrir cuando otra instancia del procesador de eventos reclama la partición o cuando se cierra la instancia actual del procesador de eventos.

OnPartitionProcessingStoppedAsync(TPartition, ProcessingStoppedReason, CancellationToken)

Realiza las tareas necesarias cuando se detiene el procesamiento de una partición. Esto suele ocurrir cuando otra instancia del procesador de eventos reclama la partición o cuando se cierra la instancia actual del procesador de eventos.

(Heredado de EventProcessor<TPartition>)
OnProcessingErrorAsync(Exception, EventProcessorPartition, String, CancellationToken)

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

OnProcessingErrorAsync(Exception, TPartition, String, CancellationToken)

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

(Heredado de EventProcessor<TPartition>)
OnProcessingEventBatchAsync(IEnumerable<EventData>, EventProcessorPartition, CancellationToken)

Realiza las tareas necesarias para procesar un lote de eventos para una partición determinada a medida que se leen desde el servicio Event Hubs.

OnProcessingEventBatchAsync(IEnumerable<EventData>, TPartition, CancellationToken)

Realiza las tareas necesarias para procesar un lote de eventos para una partición determinada a medida que se leen desde el servicio Event Hubs.

(Heredado de EventProcessor<TPartition>)
ReadLastEnqueuedEventProperties(String)

Conjunto de información sobre el último evento en cola de una partición, tal y como observa el cliente de EventHubs asociado a este contexto a medida que se reciben eventos del servicio Event Hubs. Esto solo está disponible si el consumidor se creó con TrackLastEnqueuedEventProperties establecido.

(Heredado de EventProcessor<TPartition>)
StartProcessing(CancellationToken)

Indica que se EventProcessorClient van a iniciar el procesamiento de eventos. Si se llama a este método mientras se ejecuta el procesador, no se realiza ninguna acción.

StartProcessingAsync(CancellationToken)

Indica que se EventProcessorClient van a iniciar el procesamiento de eventos. Si se llama a este método mientras se ejecuta el procesador, no se realiza ninguna acción.

StopProcessing(CancellationToken)

Indica que se detendrá el EventProcessorClient procesamiento de eventos. Si se llama a este método mientras el procesador no se está ejecutando, no se realiza ninguna acción.

StopProcessingAsync(CancellationToken)

Indica que se detendrá el EventProcessorClient procesamiento de eventos. Si se llama a este método mientras el procesador no se está ejecutando, no se realiza ninguna acción.

UpdateCheckpointAsync(String, Int64, Nullable<Int64>, CancellationToken)

Crea o actualiza un punto de control para una partición específica, lo que identifica una posición en el flujo de eventos de la partición desde la que debe empezar a leer un procesador de eventos.

ValidateProcessingPreconditions(CancellationToken)

Realiza las tareas necesarias para validar la configuración básica y los permisos de las dependencias necesarias para que el procesador funcione.

Eventos

PartitionClosingAsync

Realiza las tareas necesarias cuando se detiene el procesamiento de una partición. Esto suele ocurrir cuando otra instancia del procesador de eventos reclama la partición o cuando se cierra la instancia actual del procesador de eventos.

No se recomienda que el estado del procesador se administre directamente desde dentro de este método; solicitar iniciar o detener el procesador puede dar lugar a un escenario de interbloqueo, especialmente si se usa la forma sincrónica de la llamada.

PartitionInitializingAsync

Realiza las tareas para inicializar una partición y su contexto asociado para el procesamiento de eventos.

No se recomienda que el estado del procesador se administre directamente desde dentro de este método; solicitar iniciar o detener el procesador puede dar lugar a un escenario de interbloqueo, especialmente si se usa la forma sincrónica de la llamada.

ProcessErrorAsync

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 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 realizar de forma segura mediante una llamada 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.

ProcessEventAsync

Realiza las tareas necesarias para procesar un lote de eventos para una partición determinada a medida que se leen desde el servicio Event Hubs. La implementación es obligatoria.

Si se produce una excepción en el código de este método, el procesador de eventos le permitirá propagar la pila sin intentar controlarla de ninguna manera. En la mayoría de los hosts, se producirá un error en la tarea responsable del procesamiento de particiones, lo que hará que se reinicie desde el último punto de control. En algunos hosts, puede bloquear el proceso. Se recomienda encarecidamente a los desarrolladores tener en cuenta todos los escenarios de excepción y protegerse contra ellos mediante bloques try/catch y otros medios según corresponda.

No se recomienda que el estado del procesador se administre directamente desde dentro de este controlador; solicitar iniciar o detener el procesador puede dar lugar a un escenario de interbloqueo, especialmente si se usa la forma sincrónica de la llamada.

Se aplica a