2017-07-25 8 views
2

メッセージが例外の結果として「再試行」されている場合、物理的にキューに戻されていますか?最初に?最後まで?キューに存在するメッセージの後に再処理されますか?アプリケーションメモリに保持されていますか?マスストリットステートマシン - リトライメカニズム

maststransit再試行のメカニズムフローの説明が見つかりませんでした。

私にそれを説明する任意のドキュメントを参照してください、ありがとう。

答えて

2

MassTransitは同じコンシューマ配信内でメッセージを再試行します。再試行はコンシューマ/サガ/ハンドラ配信パイプライン上でのみ行われます。サガの場合、データベーストランザクション(存在する場合)が中止され、データベースからサガインスタンスを再読み込みすることを含む新しいトランザクションが開始されます。

メッセージは、他のワーカーが処理するためにキューに戻されません。

再試行ポリシーの制限に達すると、メッセージは_errorキューに移動されます。

+0

メッセージが特定の順序で送信されていて、状態が目的のメッセージに達していないか、まだ作成されていないために現在のサガ配信パイプラインが処理できない場合は、現在のこのメッセージに労働者は「つぶれていますか?再試行の間隔を使用する - 現在のワーカーがその間に他のメッセージを処理できるようにしますか? –

+0

メッセージを処理する状態にない場合は、予定された再配信を使用する必要があります。自分でメッセージをスケジューリングするか、MassTransitにスケジュールされた再配信を使用して再配信するように指示するだけです。 –