标签: rabbitmq amqp producer-consumer
基于我对RabbitMQ / AMQP的理解,我看到了一个不幸的权衡。
通常的工作流程是:
所以问题是ack结合了两件事:说“我可以接受更多工作”,并说“我完成了这项任务。”问题是!我的消费者机器被分析为并行处理50个任务,每个任务最多需要30秒。但如果一项任务悬空或失败 - 需要重新交付。如何做到这一点?
答案 0 :(得分:1)
使用
channel.basicQos(prefetchCount);
预取计数=我无需确认即可处理的任务数。
已记录,例如here