RabbitMQ在消费期间阻止其他消费者

时间:2018-06-18 03:29:50

标签: rabbitmq rabbitmq-exchange

在将下一个任务/消息/项目发送给另一个消费者之前,队列是否有办法等待任务/消息/项目在处理中完成? 这是我想要完成的场景:

  • 三个消费者(cons_A,cons_B,cons_C)订阅一个队列(task_queue)
  • 当发布者向'task_queue'添加任务时,队列将(或者一个消费者订阅)发送给任务(假设cons_B订阅)。
  • 当另一个任务添加到'task_queue'时,该队列阻止其他消费者订阅,直到正在进行的消费完成(直到cons_B响应完成并不重要,如果成功与否)。

队列/交换机等待正在进行的任务完成,然后让另一个消费者订阅下一个任务。

我正在考虑将队列大小设置为“1”,并在消费者订阅时等待确认任务完成。但这似乎不是最佳方法,因为在消费期间添加的任务会被拒绝。

是否可以在RabbitMQ中这样做?

1 个答案:

答案 0 :(得分:0)

RabbitMQ团队监视the rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。


据我所知,不支持这种情况。如果您在邮件列表中描述了用例,则已经实施类似操作的人可能会提供意见。