首页 > 解决方案 > 根据 ID 合并 RabbitMQ 队列

问题描述

我有一个工作人员从提要中提取 ID 并将它们发布到队列中。多个工作人员读取该队列并从多个源添加其他数据并将更新的对象发布到他们各自的队列。

我需要一种方法让另一个工作人员从这些队列中摄取并将这些数据位合并到一个文档中以存储在数据库中。

我想要一种让 RabbitMQ 变得聪明的方法,并且只有在所有其他工作人员完成收集有关该 ID 的信息后才将消息传递给最终工作人员。这可能吗,使用 RabbitMQ?

IE:

[{id:1},{id:2},{id:3}] --worker--> [{id: 1, somedata: "foo"}, ...]  <<how do I send this merge_worker both queues, synced by the id field>>
                       --worker--> [{id: 1, otherdata: "bar"}, ...]  --merge_worker--> [{id: 1, somedata: "foo", otherdata: "bar"}, ...] --> dumps to DB

这是我正在进行的一个新项目,所以如果有其他工具比 RabbitMQ 更好,我愿意接受建议并且可以轻松切换。只要不是卡夫卡……卡夫卡伤害了我太多次

标签: pythonrabbitmq

解决方案


推荐阅读