c# - Masstransit 中的有序消息
问题描述
在我的情况下,我有一些要求按顺序处理消息,但不完全是。我知道订购消息很糟糕,所以我会解释一下。
有一位生产者以定时间隔发布一条消息。此消息包含要执行的作业列表。该消息启动了一个 saga,它根据这些作业的“权重”对这些作业进行排序,并为消费者准备一批其他消息(如果重要的话,它们也是 saga)。有多个消费者。
我现在需要的是按初始传奇准备的顺序处理这些工作。但我不希望其他消费者停滞不前。
我正在谈论的一个例子。
成像一批作业:“1, 2, 3, 4, 5, 6, 7, 8”
如果每个队列限制为 4 个消费者,我希望立即使用作业“1、2、3、4”。当任何工作完成时,我希望使用下一个工作(在本例中为 #5)。然后#6等等。
如果在队列中只剩下“6、7、8”时准备好另一批,我希望它以相同的方式排序。因此,如果作业“1、2、9、10”到达,那么结果队列应该变为“1、2、6、7、8、9、10 ” ,即始终按“重量”排序并按此顺序消耗,所以下一个工作必须再次是“1”,然后是“2”,依此类推。
这个方案是否可能以某种方式使用 Masstransit?我知道工作“10”有可能永远不会得到处理,但这对我来说不是问题。
PS 使用 RabbitMQ。
解决方案
推荐阅读
- react-native - 如何解决 ESLint 错误无法解析模块“react-native”的路径
- c# - 访问 Int 变量时 SSIS 获取异常
- mongodb - 如何在 MongoDB Stitch Functions 代码中使用 Object.bsonsize?
- excel - How to get different years for a slicer
- informatica - 如何从来自源的一组日期中选择最大日期,除了高日期?
- wordpress - 将另一个 Wordpress 数据库中的帖子添加到 WP Query
- python - 在数据帧上使用 groupby 进行动态移位
- azure-log-analytics - 当 Linux 服务停止时,如何在 OMS 中创建警报?
- mysql - 获取两个日期范围之间的缺失日期
- npm - 代替 npm 使用老派有什么缺点吗