链接事件/命令?

时间:2012-08-10 03:35:33

标签: nservicebus

我有一个功能,我试图使用NServiceBus实现,但不确定在这里使用的模式。 (我对NServiceBus很新)

我会试着解释我的不确定性来自哪里:

用户交互触发MVC控制器发送命令以执行域操作。此命令引发一个事件以通知其他人发生了这种情况。

订阅此事件的处理程序确定是否应发生另一个域操作。

这是我不清楚要遵循的正确模式的地方。此时应该是事件处理程序:

  • 只需进行更改吗?
  • 发送新命令来做吗?如果是,请将其发回原始服务/流程吗?
  • 另一种选择?

我的一部分想知道我是否应该使用进程内域事件来处理这个问题,但我不认为第一个命令应该在返回之前等待第二个命令。事实上它可能会发生得更晚。这就是我使用总线处理异步的原因。此外,第二次操作完成后,需要生成一封电子邮件。是否应该从另一个事件/命令触发?

任何和所有指导意见。

2 个答案:

答案 0 :(得分:3)

如果不需要等待第二个操作然后是,则应该异步完成,因此第一个命令的处理应该发布NServiceBus事件。该事件的处理程序(可能)将托管在一个单独的端点中,然后只需要完成工作 - 无需在那里发送另一个命令。

答案 1 :(得分:1)

要添加到Udi的答案,如果原始端点上的服务确实是应该负责该命令行为的服务,我只会转身并将命令发送回原始服务。否则,接收事件的服务(端点)应该只响应事件而做它需要做的事情(听起来像你的情况)。