EventProcessor<TPartition>.OnProcessingErrorAsync メソッド

定義

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

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

パラメーター

exception
Exception

イベント プロセッサの操作中に発生した例外。

partition
TPartition

エラーに関連付けられているパーティションのコンテキスト (存在する場合)。それ以外の場合は null。 これは、エラーが発生した時点に応じて、 の EventProcessorPartitionメンバーに対してのみ初期化できます。

operationDescription
String

例外が発生した操作の短い説明。情報のみを目的としています。

cancellationToken
CancellationToken

CancellationToken処理を取り消す要求を通知するインスタンス。 これは、プロセッサのシャットダウン時に発生する可能性が最も高くなります。

戻り値

注釈

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

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

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

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

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

適用対象