指定MassTransit消费者将使用相同事件的顺序

时间:2017-09-12 15:04:53

标签: c# masstransit

我有两个消费者:FirstConsumerSecondConsumer使用相同类型的事件。但是,SecondConsumer的操作部分取决于FirstConsumer执行的操作的输出。

有没有办法确保事件始终首先被FirstConsumer消费,并且仅在SecondConsumer之后完成?

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

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

我也快速阅读了自动识别,然而,它并不觉得它是这项工作的工具。

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

1 个答案:

答案 0 :(得分:0)

最后看起来像Automatonymous是可行的。

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