【发布时间】:2020-02-22 19:15:16
【问题描述】:
在 RabbitMQ 中有一些消息卡在 UnAck 状态。有什么方法可以在不重新启动消费者应用程序或不重新启动 RabbitMQ 服务器的情况下将它们移动到就绪状态?
【问题讨论】:
标签: rabbitmq rabbitmqctl
在 RabbitMQ 中有一些消息卡在 UnAck 状态。有什么方法可以在不重新启动消费者应用程序或不重新启动 RabbitMQ 服务器的情况下将它们移动到就绪状态?
【问题讨论】:
标签: rabbitmq rabbitmqctl
Unacked 状态字面意思是消息正在被消费并等待确认,即状态更新。如果您的消息停留在这种状态,这很可能意味着您的消费者没有为这些消息提供适当的确认。
您可以通过以下方式提供确认。
ack 消息。这向 RabbitMQ 发出信号,表明消息已成功处理/使用,并且可以从队列中弹出。见https://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.ack
reject 或 nack 消息。这表明消息未正确处理,应该是“死信”或“重新排队”,具体取决于消息/队列配置。见https://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.reject
或者,您也可以为您的消息设置一个 TTL,在这种情况下,如果他们在队列中的时间超过了他们的 TTL,他们将自动为reject。见这里https://www.rabbitmq.com/ttl.html。
【讨论】: