EventProcessor<TPartition>.OnProcessingEventBatchAsync Méthode

Définition

Effectue les tâches nécessaires pour traiter un lot d’événements pour une partition donnée à mesure qu’ils sont lus à partir du service Event Hubs.

protected abstract System.Threading.Tasks.Task OnProcessingEventBatchAsync (System.Collections.Generic.IEnumerable<Azure.Messaging.EventHubs.EventData> events, TPartition partition, System.Threading.CancellationToken cancellationToken);
abstract member OnProcessingEventBatchAsync : seq<Azure.Messaging.EventHubs.EventData> * 'Partition * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected MustOverride Function OnProcessingEventBatchAsync (events As IEnumerable(Of EventData), partition As TPartition, cancellationToken As CancellationToken) As Task

Paramètres

events
IEnumerable<EventData>

Lot d’événements à traiter.

partition
TPartition

Contexte de la partition à partir de laquelle les événements ont été lus.

cancellationToken
CancellationToken

Un CancellationToken instance pour signaler la demande d’annulation du traitement. Cela est plus susceptible de se produire lorsque le processeur s’arrête.

Retours

Remarques

Le nombre d’événements dans le events lot peut varier. Le lot contiendra un certain nombre d’événements compris entre zéro et la taille du lot demandée lors de la création du processeur, en fonction de la disponibilité des événements dans la partition dans l’intervalle demandé MaximumWaitTime .

Lorsque des événements sont disponibles dans la file d’attente de prérécupération, ils sont utilisés pour former le lot le plus rapidement possible sans attendre la lecture des événements supplémentaires de la partition Event Hub. Lorsqu’aucun événement n’est disponible en préversion, le processeur attend qu’au moins un événement soit disponible ou que le demandé MaximumWaitTime soit écoulé.

Si MaximumWaitTime a la valeur null, le processeur d’événements continue la lecture à partir de la partition Event Hub jusqu’à ce qu’un lot avec au moins un événement puisse être formé et ne distribue pas de lots vides à cette méthode.

Cette méthode sera appelée simultanément, limitée à un seul appel par partition. Le processeur attend chaque appel pour s’assurer que les événements de la même partition sont traités dans l’ordre dans lequel ils ont été lus à partir de la partition. Aucune limite de temps n’est imposée à un appel de ce gestionnaire ; le processeur attend indéfiniment que l’exécution se termine avant de distribuer un autre événement pour la partition associée. Il est sûr que les implémentations effectuent des opérations de longue durée, des nouvelles tentatives, des retards et des activités de lettres mortes.

Si une exception se produit dans le code de cette méthode, le processeur d’événements lui permet de propager la pile sans tenter de la gérer de quelque manière que ce soit. Sur la plupart des hôtes, la tâche responsable du traitement de partition est alors en panne, ce qui entraîne son redémarrage à partir du dernier point de contrôle. Sur certains hôtes, il peut bloquer le processus. Les développeurs sont vivement encouragés à prendre en compte tous les scénarios d’exception et à se prémunir contre eux en utilisant des blocs try/catch et d’autres moyens, le cas échéant.

Il n’est pas recommandé que l’état du processeur soit géré directement à partir de cette méthode ; La demande de démarrage ou d’arrêt du processeur peut entraîner un scénario d’interblocage, en particulier si vous utilisez la forme synchrone de l’appel.

S’applique à