EventProcessorClient.ProcessErrorAsync イベント

定義

イベント プロセッサ インフラストラクチャの操作内で予期しない例外が発生したときに必要なタスクを実行します。 実装は必須です。

このエラー ハンドラーは、それ自体で EventProcessorClient 例外が発生した場合に呼び出されます。開発者コードを実行するイベントやその他のイベント ハンドラーや拡張ポイントを処理するために実装されたコード内の例外に対しては呼び出されません。 は EventProcessorClient 、例外から回復し、処理を続行するためにあらゆる努力をします。 回復できない例外が発生した場合、プロセッサは処理していたすべてのパーティションの所有権を失い、作業を再配布しようとします。

このメソッドに表示される例外は、致命的または致命的ではない可能性があります。プロセッサは例外が致命的かどうか、またはその状態が破損したかどうかを正確に予測できない可能性があるため、このメソッドは、処理を終了するか再起動するかを決定する必要があります。 必要に応じて、 や StartProcessingAsync(CancellationToken)を呼び出StopProcessingAsync(CancellationToken)すことで安全に行うことができます。

運用環境のシナリオでは、このエラー ハンドラーによって行われた観察、パーティションの処理を初期化するときに呼び出されるメソッド、およびパーティションの処理が停止したときに呼び出されるメソッドを考慮して決定することをお勧めします。 多くの開発者は、この決定にも監視プラットフォームからのデータを含めます。

イベント処理と同様に、エラー ハンドラーのコードで例外が発生した場合、イベント プロセッサはバブル処理を許可し、どのような方法でも処理を試みません。 開発者は、例外シナリオを考慮し、必要に応じて try/catch ブロックやその他の手段を使用してそれらに対して保護することを強くお勧めします。

public event Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs,System.Threading.Tasks.Task> ProcessErrorAsync;
member this.ProcessErrorAsync : Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs, System.Threading.Tasks.Task> 
Public Custom Event ProcessErrorAsync As Func(Of ProcessErrorEventArgs, Task) 

イベントの種類

例外

登録されている現在のハンドラーと一致しないハンドラーを削除しようとした場合。

ハンドラーが現在登録されているときにハンドラーを追加しようとした場合。

注釈

このハンドラーは同時に呼び出され、各エラーは独立しているプロセッサによって待機されません。 このハンドラーの呼び出しに制限はありません。実装では、必要に応じて実行時間の長い操作と再試行を実行しても安全です。

適用対象

こちらもご覧ください