EventProcessorClient.OnProcessingEventBatchAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Executa as tarefas necessárias para processar um lote de eventos para uma determinada partição conforme eles são lidos do serviço hubs de eventos.
protected override System.Threading.Tasks.Task OnProcessingEventBatchAsync (System.Collections.Generic.IEnumerable<Azure.Messaging.EventHubs.EventData> events, Azure.Messaging.EventHubs.Primitives.EventProcessorPartition partition, System.Threading.CancellationToken cancellationToken);
override this.OnProcessingEventBatchAsync : seq<Azure.Messaging.EventHubs.EventData> * Azure.Messaging.EventHubs.Primitives.EventProcessorPartition * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected Overrides Function OnProcessingEventBatchAsync (events As IEnumerable(Of EventData), partition As EventProcessorPartition, cancellationToken As CancellationToken) As Task
Parâmetros
- events
- IEnumerable<EventData>
O lote de eventos a serem processados.
- partition
- EventProcessorPartition
O contexto da partição da qual os eventos foram lidos.
- cancellationToken
- CancellationToken
Uma CancellationToken instância para sinalizar a solicitação para cancelar o processamento. É mais provável que isso ocorra quando o processador está sendo desligado.
Retornos
Comentários
O número de eventos no events
lote pode variar. O lote conterá uma série de eventos entre o tamanho zero e o do lote que foram solicitados quando o processador foi criado, dependendo da disponibilidade de eventos na partição dentro do intervalo solicitado MaximumWaitTime .
Se houver eventos suficientes disponíveis na partição do Hub de Eventos para preencher um lote do tamanho solicitado, o processador preencherá o lote e o enviará para esse método imediatamente. Se não houver um número suficiente de eventos disponíveis na partição para preencher um lote completo, o processador de eventos continuará lendo da partição para alcançar o tamanho do lote solicitado até que o MaximumWaitTime tenha decorrido, momento em que retornará um lote contendo todos os eventos que estavam disponíveis até o final desse período.
Se um MaximumWaitTime não tiver sido solicitado, indicado definindo a opção como null
, o processador de eventos continuará lendo a partir da partição do Hub de Eventos até que um lote completo do tamanho solicitado possa ser preenchido e não enviará nenhum lote parcial para esse método.
Se ocorrer uma exceção dentro do código para esse método, o processador de eventos permitirá que ele seja bolhas e não será exibido para o manipulador de erros ou tentará manirá-lo de forma alguma. Os desenvolvedores são fortemente incentivados a levar em conta cenários de exceção e se proteger contra eles usando blocos try/catch e outros meios conforme apropriado.
Não é recomendável que o estado do processador seja gerenciado diretamente nesse método; a solicitação para iniciar ou parar o processador pode resultar em um cenário de deadlock, especialmente se estiver usando a forma síncrona da chamada.