如何将消息从未确认状态推送到就绪状态,rabbitmq

use*_*372 7 tomcat rabbitmq redis

在我们的应用程序中使用了 RabbitMq 有数百个消息在时间上累积,几个队列处于未确认状态,并且由于侦听器不活动时的几次意外关闭,TTL 无法工作。

现在出于商业原因,我不能只是清空队列。我想手动将未确认的消息推送到就绪状态。

有没有 ??

谢谢 !

Der*_*ley 9

有两种方法可以将消息从 unack'd 移动到 ready:

1)确认来自消费者的消息

2)关闭让他们保持开放的消费者

很可能,选项#1 并不是真正的选项。当消息卡在 unack'd 状态时,通常是因为消费者失去了对消息的跟踪并且无法再确认它。

这通常会留下 #2:您需要关闭之前连接到该队列的所有消费者。当消息未确认且消费者删除时,RMQ 会将消息推回就绪状态。

如果您关闭消费者并重新启动它们会使消息回到未确认状态,那么您需要找出导致消费者错误的原因,修复代码并重新启动它。

  • 有第三种方式吗?? (4认同)