EventProcessor<TPartition> Klasse

Definition

Stellt eine Basis zum Erstellen eines benutzerdefinierten Prozessors bereit, der Ereignisse für alle Partitionen eines bestimmten Event Hubs für eine bestimmte Consumergruppe nutzt. Der Prozessor ist in der Lage, mit anderen Instanzen zusammenzuarbeiten, um dieselbe Event Hub- und Consumergruppe zu koppeln, um Arbeit mithilfe einer gemeinsamen Speicherplattform für die Kommunikation zu teilen. Die Fehlertoleranz ist ebenfalls integriert, sodass der Prozessor bei Fehlern resilient ist.

public abstract class EventProcessor<TPartition> where TPartition : EventProcessorPartition, new()
type EventProcessor<'Partition (requires 'Partition :> EventProcessorPartition and 'Partition : (new : unit -> 'Partition))> = class
Public MustInherit Class EventProcessor(Of TPartition)

Typparameter

TPartition

Der Kontext der Partition, für die ein Vorgang ausgeführt wird.

Vererbung
EventProcessor<TPartition>
Abgeleitet

Hinweise

Um die Koordination für die Freigabe von Partitionen zwischen EventProcessor<TPartition> Instanzen zu ermöglichen, wird exklusiver Lesezugriff auf Partitionen für die Consumergruppe bestätigt. Außer Prozessoren, die zusammenarbeiten möchten, sollten keine anderen Leser in der Consumergruppe aktiv sein. Nicht ausschließlichen Lesern wird der Zugriff verweigert; Exklusive Leser, einschließlich Prozessoren, die einen anderen Speicherort verwenden, beeinträchtigen den Betrieb und die Leistung des Prozessors.

Kann EventProcessor<TPartition> für die Lebensdauer einer Anwendung sicher zwischengespeichert und verwendet werden, was der empfohlene Ansatz ist. Der Prozessor ist für die effiziente Netzwerk-, CPU- und Arbeitsspeichernutzung verantwortlich. Wenn Sie entweder StopProcessingAsync(CancellationToken) oder StopProcessing(CancellationToken) aufrufen, wenn die gesamte Verarbeitung abgeschlossen ist oder wenn die Anwendung heruntergefahren wird, wird sichergestellt, dass Netzwerkressourcen und andere nicht verwaltete Objekte ordnungsgemäß bereinigt werden.

Konstruktoren

EventProcessor<TPartition>()

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

EventProcessor<TPartition>(Int32, String, String, EventProcessorOptions)

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

EventProcessor<TPartition>(Int32, String, String, String, AzureNamedKeyCredential, EventProcessorOptions)

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

EventProcessor<TPartition>(Int32, String, String, String, AzureSasCredential, EventProcessorOptions)

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

EventProcessor<TPartition>(Int32, String, String, String, EventProcessorOptions)

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

EventProcessor<TPartition>(Int32, String, String, String, TokenCredential, EventProcessorOptions)

Initialisiert eine neue Instanz der EventProcessor<TPartition>-Klasse.

Eigenschaften

ConsumerGroup

Der Name der Consumergruppe, der dieser Ereignisprozessor zugeordnet ist. Ereignisse werden im Kontext dieser Gruppe nur gelesen.

EventHubName

Der Name des Event Hubs, mit dem der Prozessor verbunden ist, spezifisch für den Event Hubs-Namespace, der ihn enthält.

FullyQualifiedNamespace

Der vollqualifizierte Event Hubs-Namespace, dem der Prozessor zugeordnet ist. Dies ist wahrscheinlich ähnlich wie .{yournamespace}.servicebus.windows.net

Identifier

Ein eindeutiger Name, der zum Identifizieren dieses Ereignisprozessors verwendet wird.

IsRunning

Gibt an, ob dieser Ereignisprozessor derzeit ausgeführt wird.

RetryPolicy

Die aktive Richtlinie, die Wiederholungsversuche für den Prozessor steuert.

Methoden

ClaimOwnershipAsync(IEnumerable<EventProcessorPartitionOwnership>, CancellationToken)

Versucht, den Besitz der angegebenen Partitionen für die Verarbeitung anzufordern. Dieser Vorgang wird vom Lastenausgleich verwendet, um die Verteilung der Verantwortung für die Verarbeitung von Partitionen für eine Event Hub- und Consumergruppenpaarung auf die aktiven Ereignisprozessoren zu ermöglichen.

CreateConnection()

Erstellt einen EventHubConnection für die Kommunikation mit dem Event Hubs-Dienst.

GetCheckpointAsync(String, CancellationToken)

Gibt einen Prüfpunkt für den Event Hub, die Consumergruppe und den Bezeichner der Partition zurück, die dem Ereignisprozessor instance zugeordnet ist, sodass die Verarbeitung für eine bestimmte Partition ordnungsgemäß initialisiert werden kann. Die Standardimplementierung ruft die Azure.Messaging.EventHubs.Primitives.EventProcessor`1.ListCheckpointsAsync(System.Threading.CancellationToken) Ergebnisse auf und filtert nach PartitionId. Es wird empfohlen, dass diese Methode in EventProcessor<TPartition> Implementierungen überschrieben wird, um eine optimale Leistung zu erzielen.

ListOwnershipAsync(CancellationToken)

Fordert eine Liste der Besitzzuweisungen für Partitionen zwischen den einzelnen kooperierenden Ereignisprozessorinstanzen für eine bestimmte Event Hub- und Consumergruppenpaarung an. Diese Methode wird während des Lastenausgleichs verwendet, um es dem Prozessor zu ermöglichen, andere aktive Mitarbeiter zu ermitteln und Entscheidungen darüber zu treffen, wie die Arbeit am besten zwischen ihnen ausgeglichen werden kann.

ListPartitionIdsAsync(EventHubConnection, CancellationToken)

Abfragen für die Bezeichner der Event Hub-Partitionen.

OnInitializingPartitionAsync(TPartition, CancellationToken)

Führt die Aufgaben zum Initialisieren einer Partition und des zugehörigen Kontexts für die Ereignisverarbeitung aus.

OnPartitionProcessingStoppedAsync(TPartition, ProcessingStoppedReason, CancellationToken)

Führt die erforderlichen Aufgaben aus, wenn die Verarbeitung für eine Partition beendet wird. Dies tritt häufig auf, wenn die Partition von einem anderen Ereignisprozessor instance oder wenn der aktuelle Ereignisprozessor instance heruntergefahren wird.

OnProcessingErrorAsync(Exception, TPartition, String, CancellationToken)

Führt die erforderlichen Aufgaben aus, wenn eine unerwartete Ausnahme innerhalb des Betriebs der Ereignisprozessorinfrastruktur auftritt.

OnProcessingEventBatchAsync(IEnumerable<EventData>, TPartition, CancellationToken)

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

ReadLastEnqueuedEventProperties(String)

Eine Reihe von Informationen zum letzten Warteschlangenereignis einer Partition, wie vom zugeordneten EventHubs-Client beobachtet wird, der diesem Kontext zugeordnet ist, wenn Ereignisse vom Event Hubs-Dienst empfangen werden. Dies ist nur verfügbar, wenn der Consumer mit TrackLastEnqueuedEventProperties set erstellt wurde.

StartProcessing(CancellationToken)

Signalisiert, dass mit der EventProcessor<TPartition> Verarbeitung von Ereignissen begonnen wird. Wenn diese Methode aufgerufen wird, während der Prozessor ausgeführt wird, wird keine Aktion ausgeführt.

StartProcessingAsync(CancellationToken)

Signalisiert, dass mit der EventProcessor<TPartition> Verarbeitung von Ereignissen begonnen wird. Wenn diese Methode aufgerufen wird, während der Prozessor ausgeführt wird, wird keine Aktion ausgeführt.

StopProcessing(CancellationToken)

Signalisiert, dass die EventProcessor<TPartition> Verarbeitung von Ereignissen beendet wird. Wenn diese Methode aufgerufen wird, während der Prozessor nicht ausgeführt wird, wird keine Aktion ausgeführt.

StopProcessingAsync(CancellationToken)

Signalisiert, dass die EventProcessor<TPartition> Verarbeitung von Ereignissen beendet wird. Wenn diese Methode aufgerufen wird, während der Prozessor nicht ausgeführt wird, wird keine Aktion ausgeführt.

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

Erstellt oder aktualisiert einen Prüfpunkt für eine bestimmte Partition und identifiziert dabei eine Position im Ereignisdatenstrom der Partition, von der ein Ereignisprozessor mit dem Lesen beginnen soll.

ValidateProcessingPreconditions(CancellationToken)

Führt die Aufgaben aus, die zum Überprüfen der grundlegenden Konfiguration und der Berechtigungen der Abhängigkeiten erforderlich sind, die für die Funktion des Prozessors erforderlich sind.

Gilt für: