首页 文章

RabbitMQ:从多个队列一次只消耗一条消息

提问于
浏览
0

我正试图在RabbitMQ中保持与多个队列的连接 . 每次我从其中一个队列中弹出一条新消息时,我都想生成一个外部进程 .

此过程将花费一些时间来处理消息,并且我不想开始处理来自该特定队列的另一条消息,直到我之前弹出的消息完成为止 . 如果可能的话,我不想让一个进程/线程只是等待外部进程完成并确认服务器 . 理想情况下,我想在这个外部进程中,可能会传递一些标识符,以便它可以连接到RabbitMQ并确认消息 .

是否可以使用RabbitMQ设计此系统?我正在使用Python和Pika,如果这与答案相关 .

谢谢!

1 回答

  • 0

    RabbitMQ可以做到这一点 .

    您只想在准备好时从队列中读取 - 因此启动一个可以产生外部进程并观察它的线程,然后在进程完成时从队列中获取下一条消息 . 然后,您可以并行运行多个线程来管理多个队列 .

    我不确定你想要什么?您是否试图阻止RabbitMQ向该队列添加新元素(如果它太满(因为它的元素处理太慢/根本没有)?在向队列添加消息时可能有一种方法可以执行此操作 - 在添加项目之前,检查以确保该队列中已有的消息数量“远远大于”所有队列的平均值?

相关问题