私たちはワークフローをモデル化するためにサガを使用しています。このワークフローは、イベントが来るのを待って、イベントに基づいて何らかの作業を実行します。いくつかのケースでは、複数のタスク(連鎖されたメソッド)を順番に実行する必要がありますが、失敗した場合はチェーン全体を補完したいと考えています。ルーティングスリップは適切だと思われますが、そのようなルーティングスリップがサガのThenメソッドから実行できるかどうかはわかりません。サガからルーティングスリップを実行するにはどうすればよいですか?
0
A
答えて
0
実際には、ステートマシンサガ内の動作からルーティングスリップを実行することは可能であり、かなり一般的です。ただし、サガから通常のコンシューマにコマンドを送信し、ルーティングスリップを作成して実行することをお勧めします。
別のステートマシンは、ルーティングスリップイベントを使用して状態を前方に移動することによって、ルーティングスリップの進行を監視できます。ルーティングスリップが完了すると、元のサガによって観測されたルーティングスリップステートマシンによってビジネスイベントが生成され、成功した場合は失敗し、失敗した場合は(ルーティングスリップが失敗した場合) 。
ルーティングスリップのための別のステートマシンを持つことにより、ルーティングスリップアクティビティによってモデル化されたビジネストランザクションに回復力を加えることができるスケジュール再試行のようなものを追加することができます。それはまた、ルーティングスリップの懸念を分離して保持し、ビジネスイベントのみを使用して元の佐賀をきれいに保ちます。
このデモには、次のものもあります。 https://github.com/phatboyg/Demo-Registration
関連する問題
- 1. サガがキャンセルされたというエラーを解決するにはどうすればよいですか?
- 2. しばらくしてからWP7 Silverlightアプリケーションを実行するにはどうすればよいですか?
- 3. PowerMockRunnerで実行されるアンドロイドユニットテストからjsonファイルをロードするにはどうすればよいですか?
- 4. TMPL_VARでencode_entitiesを実行するにはどうすればよいですか?
- 5. Windowsでチェックサムを実行するにはどうすればよいですか?
- 6. JQueryでループを実行するにはどうすればよいですか?
- 7. ユニットテストをアンドロイドモジュールで実行するにはどうすればよいですか?
- 8. func.countでHAVINGを実行するにはどうすればよいですか?
- 9. DbFitでMERGEを実行するにはどうすればよいですか?
- 10. ブートストラップデータテーブルでカスタムフィルタオプションを実行するにはどうすればよいですか?
- 11. アンドロイドスタジオでhieroを実行するにはどうすればよいですか?
- 12. ブートストラップグリッドでダイナミックレイアウトテンプレートを実行するにはどうすればよいですか?
- 13. カスタムエラーハンドラでシェルを実行するにはどうすればよいですか?
- 14. JSFでミニテンプレートシステムを実行するにはどうすればよいですか?
- 15. xPagesでカスタムコントロールログインフォームを実行するにはどうすればよいですか?
- 16. コマンドヒストリサポートでインタープリタを実行するにはどうすればよいですか?
- 17. RestheartでfindAndModifyを実行するにはどうすればよいですか?
- 18. Javaでタイマを実行するにはどうすればよいですか?
- 19. C#でSystem.Web.Script.Serializationを実行するにはどうすればよいですか?
- 20. タイマーをバックグラウンドで実行するにはどうすればよいですか?
- 21. Swiftでアレイスライスを実行するにはどうすればよいですか?
- 22. jshintをrhinoで実行するにはどうすればよいですか?
- 23. htmlでカウントダウンタイマーを実行するにはどうすればよいですか?
- 24. CloudimSDNで例を実行するにはどうすればよいですか?
- 25. OncreateViewでAsyncを実行するにはどうすればよいですか?
- 26. sharejsをnodejsで実行するにはどうすればよいですか?
- 27. Jekyllでプリロードページを実行するにはどうすればよいですか?
- 28. Androidでアプリケーションを実行するにはどうすればよいですか?
- 29. qでコールバックチェーンを実行するにはどうすればよいですか?
- 30. Delphiでコマンドラインプログラムを実行するにはどうすればよいですか?