我有两个消费者:FirstConsumer
和SecondConsumer
使用相同类型的事件。但是,SecondConsumer
的操作部分取决于FirstConsumer
执行的操作的输出。
有没有办法确保事件始终首先被FirstConsumer
消费,并且仅在SecondConsumer
之后完成?
修复它的快速,丑陋的方法是将它们组合成一个消费者并确保那里的并发性。但是,消费者有不同的责任,我宁愿避免这种情况。
另一种解决方案可能是将事件作为FirstConsumer
的最后一个操作发布,然后将SecondConsumer
更改为使用该事件。
我也快速阅读了自动识别,然而,它并不觉得它是这项工作的工具。
有没有办法在MassTransit中配置它并强制SecondConsumer
等待FirstConsumer
完成其工作?
答案 0 :(得分:0)
最后看起来像Automatonymous是可行的。
基本上,我要实现这里所描述的内容:http://docs.masstransit-project.com/en/v2-master/overview/saga.html#combining-events-think-fork-join,即FirstConsumer
对我们已经拥有的同一事件的发生做了工作,但随后让它在完成后发布另一个事件。 SecondConsumer
将等到两个事件都完成后才开始处理。