2016-12-02 92 views
1

在我们的应用中使用RabbitMq 有几百个消息在时间上积累,处于未排队状态的几个队列,而TTL由于多次意外关闭而不工作听众没有活着。如何推送消息从未准备就绪,rabbitmq

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

有没有?

谢谢!

回答

1

有2种方式,从unack'd邮件移动到准备:

1)从消费者ACK消息

2)关闭正在拿着他们开了消费者

很可能,选项#1并不是真正的选择。当一个消息被卡住时,通常是因为消费者失去了对该消息的追踪,并且无法再进行确认。

这通常会留下#2:您需要关闭以前连接到该队列的所有消费者。当消息被取消并且消费者下降时,RMQ将把消息推回到准备好的状态。

如果您关闭了消费者并重新启动它们,则会将消息重新置于unack'd状态,那么您需要找出导致消费者错误的原因,修复代码并重新启动它。

+1

有没有第三种方法? – user3123372

相关问题