指定 MassTransit 消费者消费同一事件的顺序

Specify the order in which MassTransit consumers will consume the same event

我有两个消费者:FirstConsumerSecondConsumer,它们消费相同类型的事件。但是,SecondConsumer 的操作部分取决于 FirstConsumer.

执行的操作的输出

有没有办法确保事件 总是 首先被 FirstConsumer 使用,并且只有在完成之后,才被 SecondConsumer 使用?

修复它的快速、丑陋的方法是将它们组合到一个消费者中并确保那里的并发性。但是,消费者有不同的责任,我宁愿避免这种情况。

另一种解决方案可能是将事件发布为 FirstConsumer 的最后一个操作,然后更改 SecondConsumer 以使用该事件。

我也快速阅读了 Automatonymous,但是,感觉它不是完成这项工作的工具。

有没有办法在 MassTransit 中配置它并强制 SecondConsumer 等待 FirstConsumer 完成它的工作?

最后看来自动命名是可行的方法。

基本上,我将要实现此处描述的内容:http://docs.masstransit-project.com/en/v2-master/overview/saga.html#combining-events-think-fork-join,即让 FirstConsumer 在我们已经拥有的相同事件发生时完成它的工作,但是随后让它在完成后发布另一个事件。 SecondConsumer 将等到两个事件都完成,然后才开始处理。