2017-10-03 6 views
0

私たちはワークフローをモデル化するためにサガを使用しています。このワークフローは、イベントが来るのを待って、イベントに基づいて何らかの作業を実行します。いくつかのケースでは、複数のタスク(連鎖されたメソッド)を順番に実行する必要がありますが、失敗した場合はチェーン全体を補完したいと考えています。ルーティングスリップは適切だと思われますが、そのようなルーティングスリップがサガのThenメソッドから実行できるかどうかはわかりません。サガからルーティングスリップを実行するにはどうすればよいですか?

答えて

0

実際には、ステートマシンサガ内の動作からルーティングスリップを実行することは可能であり、かなり一般的です。ただし、サガから通常のコンシューマにコマンドを送信し、ルーティングスリップを作成して実行することをお勧めします。

別のステートマシンは、ルーティングスリップイベントを使用して状態を前方に移動することによって、ルーティングスリップの進行を監視できます。ルーティングスリップが完了すると、元のサガによって観測されたルーティングスリップステートマシンによってビジネスイベントが生成され、成功した場合は失敗し、失敗した場合は(ルーティングスリップが失敗した場合) 。

ルーティングスリップのための別のステートマシンを持つことにより、ルーティングスリップアクティビティによってモデル化されたビジネストランザクションに回復力を加えることができるスケジュール再試行のようなものを追加することができます。それはまた、ルーティングスリップの懸念を分離して保持し、ビジネスイベントのみを使用して元の佐賀をきれいに保ちます。

このデモには、次のものもあります。 https://github.com/phatboyg/Demo-Registration

関連する問題