0

我目前将 rebus 配置为将MyMessages程序集中的所有消息定向到流程管理器输入队列。假设在 MyMessage 程序集中我有一条名为SomethingHappened的消息,它将用于触发流程管理器中的其他操作(例如DoSomethingElse)。但是,我还想在本地(在同一个队列中)订阅SomethingHappened以更新数据库。因此工作流程将如下所示:

  1. 用户在 UI 中触发动作DoSomething
  2. DoSomething的处理程序更新对象状态并在内部发布事件SomethingHappened(在内存中收集未提交的事件)
  3. 通过遍历对象中所有未提交的事件,通过 rebus 将SomethingHappened事件发布到队列
  4. 在本地处理发生的事情以更新数据库
  5. 通过saga远程处理SomethingHappened以触发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 回答