【问题标题】:RabbitMQ nack-requeue functionRabbitMQ nack-requeue 函数
【发布时间】:2017-03-16 01:10:02
【问题描述】:

考虑到我有一个包含 X 条消息的大型队列。每当创建一个带有 requeue=True 的 nack 时,它会将消息放在 X 条消息之上并重新传递给同一个消费者,形成瓶颈并且不让消费者处理其他消息。

有没有办法将消息放在队列的尾部,将它们视为新消息,所以如果我有 X 条消息,我可以在重新排队的消息之前先处理它们?

【问题讨论】:

  • 你会从中得到什么?我的意思是说你确实把它放在最后它最终会到达消费者并且处理将再次失败,不是吗?
  • 其他X消息可以被处理而不是等待处理。
  • 当然。我的意思是当重新排队的消息最终再次被消费时会发生什么?
  • 好吧,它会再次失败并重新排入列表头部。
  • 所以基本上,当它再次被消费时,它会再次被重新排队,因此到无穷大甚至更远。这意味着您应该将其记录为错误并确认它。

标签: rabbitmq


【解决方案1】:

在这个问题中,我不想在出现错误时确认消息然后丢失它,我想跟踪unprocessed 消息。

我意识到我可以创建另一个队列来将未处理的消息保存在那里并让其他消息流动!

【讨论】:

    猜你喜欢
    • 2019-06-21
    • 2017-03-03
    • 2015-05-01
    • 2017-09-01
    • 2018-12-17
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多