Nservicebus 链接事件/命令?

Nservicebus 链接事件/命令?,nservicebus,Nservicebus,我尝试使用NServiceBus实现一个功能,但不确定这里要使用的模式。(我对NServiceBus相当陌生) 我将尝试解释我的不确定性来自哪里: 用户交互触发MVC控制器发送命令以执行域操作。此命令引发一个事件,通知其他人发生了此情况 订阅此事件的处理程序确定是否应执行另一个域操作 这就是我不清楚应该遵循的正确模式的地方。此时,事件处理程序应该: 只是做必要的改变 发送新命令来执行此操作?如果是,是否将其发送回发起服务/流程 另一种选择 我想知道是否应该使用进程内域事件来处理这个问题,但我

我尝试使用NServiceBus实现一个功能,但不确定这里要使用的模式。(我对NServiceBus相当陌生)

我将尝试解释我的不确定性来自哪里:

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

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

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

  • 只是做必要的改变
  • 发送新命令来执行此操作?如果是,是否将其发送回发起服务/流程
  • 另一种选择
我想知道是否应该使用进程内域事件来处理这个问题,但我不认为第一个命令应该在第二个命令返回之前等待它。事实上,这可能要晚很多。这就是为什么我选择使用总线异步处理它。此外,第二次操作完成后,需要生成电子邮件。是否应该由另一个事件/命令触发


感谢您的指导

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

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

要添加到Udi的答案中,如果发起端点上的服务真的应该对该命令的行为负责,我只会掉头向发起服务发回一个命令。否则,接收事件的服务(端点)应该只做它需要做的事情来响应事件(听起来像您的案例)。

要添加到Udi的答案中,如果发起端点上的服务真的应该对该命令的行为负责,我只会掉头向发起服务发回一个命令。否则,接收事件的服务(端点)应该只做它需要做的事情来响应事件(听起来像您的案例).

既然还没有答案-你能用具体的名称多描述一点问题域吗?既然还没有答案-你能用具体的名称多描述一点问题域吗?所以如果事件处理程序可以修改域状态,然后我假设它也可以发布更多的事件。我想我正在为NServiceBus端点是否应该表示有界上下文或应用程序/基础架构进程而挣扎。或者根据需要进行组合。是的-事件处理程序可以“修改域状态”作为其工作的一部分。因此,如果事件处理程序可以修改域状态,那么我假设它也可以发布更多事件。我想我正在为NServiceBus端点是否应该表示有界上下文或应用程序/基础架构进程而挣扎。或者根据需要进行组合。是的-事件处理程序可以“修改域状态”作为其工作的一部分。