【问题标题】:RabbitMQ block other consumers during consumptionRabbitMQ 在消费期间阻塞其他消费者
【发布时间】:2018-06-18 03:29:49
【问题描述】:

队列有没有办法等到任务/消息/项目完成处理后再将下一个任务/消息/项目发送给另一个消费者? 这是我想要完成的场景:

  • 三个消费者(cons_A、cons_B、cons_C)订阅一个队列(task_queue)
  • 当发布者将任务添加到“task_queue”时,队列会发送(或其中一个消费者订阅)到任务(假设 cons_B 订阅)。
  • 当另一个任务添加到“task_queue”时,队列会阻止其他消费者订阅,直到正在进行的消费完成(直到 cons_B 响应完成,无论其成功与否都无关紧要)。

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

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

在 RabbitMQ 中可以这样做吗?

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange


    【解决方案1】:

    RabbitMQ 团队会监控 the rabbitmq-users mailing list,但有时只会在 StackOverflow 上回答问题。


    据我所知,这种情况不支持开箱即用。如果您在邮件列表中描述您的用例,那么已经实现类似功能的人可能会提供意见。

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多