EventProcessor<TPartition>.OnProcessingErrorAsync Methode

Definition

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

protected abstract System.Threading.Tasks.Task OnProcessingErrorAsync (Exception exception, TPartition partition, string operationDescription, System.Threading.CancellationToken cancellationToken);
abstract member OnProcessingErrorAsync : Exception * 'Partition * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected MustOverride Function OnProcessingErrorAsync (exception As Exception, partition As TPartition, operationDescription As String, cancellationToken As CancellationToken) As Task

Parameter

exception
Exception

Die Ausnahme, die während des Betriebs des Ereignisprozessors aufgetreten ist.

partition
TPartition

Der Kontext der Partition, die dem Fehler zugeordnet ist, falls vorhanden; nullandernfalls . Dies kann nur für Member von EventProcessorPartitioninitialisiert werden, je nachdem, an welchem Punkt der Fehler aufgetreten ist.

operationDescription
String

Eine kurze Textbeschreibung des Vorgangs, bei dem die Ausnahme aufgetreten ist; dient nur als Information.

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

Dieser Fehlerhandler wird aufgerufen, wenn eine Ausnahme innerhalb des Ereignisprozessors selbst beobachtet wird. Sie wird nicht für Ausnahmen im Code aufgerufen, der für die Verarbeitung von Ereignissen oder anderen Außerkraftsetzungen und Erweiterungspunkten implementiert wurde, die für den Prozessorbetrieb nicht entscheidend sind. Der Ereignisprozessor unternimmt alle Anstrengungen, um ausnahmen wiederherzustellen und die Verarbeitung fortzusetzen. Sollte eine Ausnahme gefunden werden, die nicht wiederhergestellt werden kann, versucht der Prozessor, den Besitz aller Partitionen, die er verarbeitet hat, zu verwirken, sodass die Arbeit weiterverteilt werden kann.

Die Für diese Methode aufgetauchten Ausnahmen können tödlich oder nicht tödlich sein. da der Prozessor möglicherweise nicht in der Lage ist, genau vorherzusagen, ob eine Ausnahme fatal war oder ob ihr Zustand beschädigt wurde, ist diese Methode für die Entscheidung verantwortlich, ob die Verarbeitung beendet oder neu gestartet werden soll. Wenn gewünscht, kann dies sicher durch Aufrufen StopProcessingAsync(CancellationToken) von und/oder StartProcessingAsync(CancellationToken)erfolgen.

Es wird empfohlen, für Produktionsszenarien die Entscheidung zu treffen, indem Die Beobachtungen dieses Fehlerhandlers, die beim Initialisieren der Verarbeitung für eine Partition aufgerufene Methode und die Methode, die aufgerufen wird, wenn die Verarbeitung für eine Partition beendet wird, berücksichtigt werden. Viele Entwickler werden auch Daten von ihren Überwachungsplattformen in diese Entscheidung einbeziehen.

Wie bei der Ereignisverarbeitung lässt der Ereignisprozessor im Code für den Fehlerhandler eine Ausnahme zu und versucht nicht, 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.

Diese Methode wird gleichzeitig aufgerufen und wird vom Prozessor nicht erwartet, da jeder Fehler unabhängig ist. Für einen Aufruf wird keine Frist festgelegt; Es ist sicher, dass Implementierungen bei Bedarf lang andauernde Vorgänge und Wiederholungen ausführen können.

Gilt für: