EventProcessorClient.OnProcessingEventBatchAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 null
angegeben 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.