0

現在、 MyMessagesアセンブリ内のすべてのメッセージをプロセス マネージャーの入力キューに送信するように rebus を構成しています。MyMessage アセンブリに、プロセス マネージャー ( DoSomethingElseなど)で他のアクションをトリガーするために使用されるSomethingHappenedというメッセージがあるとします。ただし、 SomethingHappenedをローカル (同じキュー内) でサブスクライブして、データベースを更新することも必要です。したがって、ワークフローは次のようになります。

  1. ユーザーが UI でアクションDoSomethingをトリガーする
  2. DoSomethingのハンドラーは、オブジェクトの状態を更新し、イベントSomethingHappenedを内部的に公開します (コミットされていないイベントのメモリ コレクション内)。
  3. SomethingHappenedイベントは、オブジェクト内のコミットされていないすべてのイベントを通過することにより、rebus によってキューに発行されます。
  4. SomethingHappenedをローカルで処理してデータベースを更新する
  5. SomethingHappenedを saga によってリモートで処理して、 SomethingElseHappenedをトリガーする

これを rebus で設定することは可能ですか?

私が現在持っている rebus 構成:

<rebus inputQueue="input" errorQueue="error" workers="1" maxRetries="5">
    <endpoints>
        <add messages="MyMessages" endpoint="processManagers.input"/>
    </endpoints>
</rebus>

ありがとうございました

4

1 に答える 1

0

私の間違い。エンドポイントを構成から入力に変更する必要があります。そして、絶対にコマンドにサブスクライブしないでください。:)

<rebus inputQueue="input" errorQueue="error" workers="1" maxRetries="5">
    <endpoints>
       <add messages="MyMessages" endpoint="input"/>
    </endpoints>
</rebus>
于 2014-08-19T23:20:47.503 に答える