【问题标题】:RabbitMQ let consumer receive more tasks before completing earlier taskRabbitMQ 让消费者在完成较早的任务之前接收更多的任务
【发布时间】:2013-03-08 16:12:50
【问题描述】:

根据我对 RabbitMQ/AMQP 的理解,我看到了一个不幸的权衡。

通常的工作流程是:

  1. 制片人制作
  2. 队列交付给消费者
  3. 消费者确认在确认之前不会收到更多任务
  4. 队列认为消息处理完成

所以问题在于 ack 结合了两件事:说“我可以接受更多的工作”和说“我已经完成了这项任务”。问题是!我的消费者机器被配置为并行处理 50 个任务,每个任务最多需要 30 秒。但是,如果一项任务悬而未决或失败 - 它需要重新交付。如何做到这一点?

【问题讨论】:

    标签: rabbitmq amqp producer-consumer


    【解决方案1】:

    使用

    channel.basicQos(prefetchCount);
    

    其中预取计数 = 我可以在不确认的情况下处理的任务数。

    记录在案,例如here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2022-10-26
      • 2020-09-30
      • 2013-03-22
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多