Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
根据我对 RabbitMQ/AMQP 的理解,我看到了一个不幸的权衡。
通常的工作流程是:
所以问题是 ack 结合了两件事:说“我可以接受更多的工作”和说“我已经完成了这项任务”。问题是!我的消费者机器被配置为并行处理 50 个任务,每个任务最多需要大约 30 秒。但是,如果一项任务悬而未决或失败 - 它需要重新交付。如何做到这一点?
采用
channel.basicQos(prefetchCount);
其中预取计数 = 我可以在不确认的情况下处理的任务数。
记录在这里。