我想在我的项目中使用 CQRS 模式的元素。我想知道我是否正确使用命令和事件。我不确定事件是否可以调用命令。为了更好地展示我想要做什么,我将使用图表和示例。
这是一个例子:
用户调用 TripCreateCommand。TripCreateCommandHandler 完成他的工作并在成功后发布 TripCreatedEvent。
现在我们有两个 TripCreatedEvent 的监听器(监听器执行的顺序无关紧要)
第一个监听器(可以在第二个监听器之后执行):
对于 trip.author.friends 中的每个用户调用两个命令(命令的顺序很重要)
- PublishTripOnUserWallCommand
- SendNewTripEmailNotificationCommand
- 发送NewTripPlatformNotification
第二个监听器(可以在第一个监听器之前执行):
- PublishTripOnUserSocials
这是示例图:
这是一个好方法吗?EventListener 可以调用命令吗,或者我应该以其他方式调用它吗?