我有一个MassTransit系统,它将使用2种消息类型,一种用于批处理,另一种用于单个实体的CRUD操作。批处理过程正在运行时,不应该对CRUD操作进行排队。
使用MassTransit可以实现吗?似乎交换绑定 - >类型名称,可能会使这种行为变得困难。
解决方案是使用一种消息类型来表示两种操作,然后询问消息内容以区分单一和批处理,但这感觉就像代码味道。此外,这将需要并发配置,以确保只有一个消费者永远活跃。
任何人都可以在此处提供替代解决方案吗?实质上,我们需要在事件驱动的进程运行时暂停所有消息消耗。
提前致谢。
答案 0 :(得分:0)
暂停,是否意味着您希望CRUD操作能够在不被批处理过程阻止的情况下进行?因为如果只是不让两个单独的消息相互阻碍,最合乎逻辑的解决方案是使用两个单独的队列,一个接收端点用于批处理,另一个用于CRUD操作。
现在,如果您确实需要将批处理过程分开,以便在 CRUD操作期间不会发生,则需要更多工作。如果在批处理已经运行时收到CRUD操作怎么办?
我认为单独的队列是你最好的解决方案。