消息类型之间的串行消费

Serial consumption between message types

我有一个 MassTransit 系统,它将使用 2 种消息类型,一种用于批处理,另一种用于单个实体上的 CRUD 操作。虽然批处理是 运行,但 CRUD 操作不应取消排队。

是否可以使用 MassTransit 实现?似乎交换绑定 -> 类型名称可能会使这种行为变得困难。

一种解决方案是使用一种消息类型来表示这两种操作,然后查询消息内容以区分单个操作和批处理操作,但这感觉像是一种代码味道。此外,这将需要并发配置以确保只有一个消费者处于活动状态。

任何人都可以在这里提供替代解决方案吗?本质上,我们需要在事件驱动过程 运行.

时暂停所有消息消费

提前致谢。

暂停是指您希望 CRUD 操作能够在不被批处理阻塞的情况下发生吗?因为如果只是不让两个单独的消息相互妨碍,最合乎逻辑的解决方案是使用两个单独的队列,一个用于批处理的接收端点,另一个用于 CRUD 操作。

现在,如果您确实需要分离批处理过程,使其不会在 CRUD 操作期间发生,那将需要更多工作。如果您在批处理过程已经 运行 时收到 CRUD 操作怎么办?

不过,我认为单独的队列是最好的解决方案。