EventProcessorClient.OnProcessingEventBatchAsync Methode

Definition

Führt die Aufgaben aus, die zum Verarbeiten eines Batches von Ereignissen für eine bestimmte Partition erforderlich sind, während diese aus dem Event Hubs-Dienst gelesen werden.

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

Parameter

events
IEnumerable<EventData>

Der Batch der zu verarbeitenden Ereignisse.

partition
EventProcessorPartition

Der Kontext der Partition, aus der die Ereignisse gelesen wurden.

cancellationToken
CancellationToken

Ein CancellationToken instance, um die Anforderung zum Abbrechen der Verarbeitung zu signalisieren. Dies tritt am wahrscheinlichsten auf, wenn der Prozessor heruntergefahren wird.

Gibt zurück

Hinweise

Die Anzahl der Ereignisse im events Batch kann variieren. Der Batch enthält eine Reihe von Ereignissen zwischen null und Batchgröße, die beim Erstellen des Prozessors angefordert wurden, abhängig von der Verfügbarkeit von Ereignissen in der Partition innerhalb des angeforderten MaximumWaitTime Intervalls.

Wenn genügend Ereignisse in der Event Hub-Partition verfügbar sind, um einen Batch der angeforderten Größe auszufüllen, füllt der Prozessor den Batch auf und sendet ihn sofort an diese Methode. Wenn in der Partition nicht eine ausreichende Anzahl von Ereignissen verfügbar war, um einen vollständigen Batch aufzufüllen, liest der Ereignisprozessor weiterhin von der Partition, um die angeforderte Batchgröße zu erreichen, bis die MaximumWaitTime abgelaufen ist. Zu diesem Zeitpunkt gibt er einen Batch zurück, der alle ereignisse enthält, die am Ende dieses Zeitraums verfügbar waren.

Wenn ein MaximumWaitTime nicht angefordert wurde, was durch Festlegen der Option auf nullangegeben wird, liest der Ereignisprozessor weiter von der Event Hub-Partition, bis ein vollständiger Batch der angeforderten Größe aufgefüllt werden konnte, und sendet keine Teilbatches an diese Methode.

Sollte im Code für diese Methode eine Ausnahme auftreten, lässt der Ereignisprozessor eine Blasenblase zu und wird nicht im Fehlerhandler angezeigt oder versucht, sie in irgendeiner Weise zu behandeln. Entwickler werden dringend empfohlen, Ausnahmeszenarien zu berücksichtigen und sich mit try/catch-Blöcken und anderen geeigneten Mitteln davor zu schützen.

Es wird nicht empfohlen, den Zustand des Prozessors direkt von dieser Methode aus zu verwalten. Die Anforderung, den Prozessor zu starten oder zu beenden, kann zu einem Deadlockszenario führen, insbesondere wenn die synchrone Form des Aufrufs verwendet wird.

Gilt für: