RabbitMQ未确认消息未在到期后从队列中删除

问题描述 投票:0回答:1

我有一个运行简单的交换扇出队列绑定的RabbitMQ服务器(v.3.8.2),有多个生产者和一个消费者。平均传送/确认速率非常低,约为6 msg / s。

[队列是由生产者在运行时创建的,x-message-ttl参数设置为900000(15分钟)。

在非常特定的条件下(例如,罕见的错误情况),消息由消费者已拒绝。然后,这些消息将无限期地显示在RabbitMQ管理网页上的unacked计数器中。他们永不过期,也不会在超时后被丢弃。

ttl参数中没有特定的按消息覆盖。

我不需要任何死信处理,因为这些特殊的消息不需要处理高度的可靠性,在那些特定的错误情况下,我有时会失去一些这样的消息。

交换参数:

name: poll
type: fanout
features: durable=true
bound queue: poll
routing key: poll

队列参数:

name: poll
features: x-message-ttl=900000 durable=true

例如,这是我当前在RabbitMQ服务器队列管理页面中看到的内容:

"Poll" Queue summary

如您所见,队列中有12条被拒绝/未确认的消息,并且它们已经在那儿居住了一个多星期。

我如何根据ttl参数使这些被打消的邮件过期?我是否缺少一些配置?

rabbitmq timeout
1个回答
0
投票

当消费者在收到消息后未确认或拒绝两者时,将发生此状态。在未确认状态下,消息不会过期。收到消息后,您必须确认或拒绝它。

此问题不是不会过期的问题,问题是您不确认或拒绝邮件。

© www.soinside.com 2019 - 2024. All rights reserved.