RabbitMQ 有不可见的队列消息
RabbitMQ has non-visible queues messages
在过去的几天里,我的 RMQ 服务器一直在累积从未从队列中清除的消息。我正在使用 RMQ 作为 celery 任务代理,并且消息在主 celery worker 队列中累积:
当任务通过管道进入、处理它们然后再次进入空闲状态时,队列会间歇性地切换到活动状态。然而,这 21 条消息永久存在。当我点击 celery
队列 UI 并尝试查找这些消息进行检查时,我被告知我的队列是空的:
我已经尝试通过 URL 端点 https://<user>:<password>@<host url>/api/queues/%2f/celery
检查消息。我可以在 message_stats
部分看到有 21 条消息,但我无法单独检查这些消息:
'message_stats': {'ack': 274597,
'ack_details': {'rate': 0.0},
'deliver': 274634,
'deliver_details': {'rate': 0.0},
'deliver_get': 274634,
'deliver_get_details': {'rate': 0.0},
'deliver_no_ack': 0,
'deliver_no_ack_details': {'rate': 0.0},
'get': 0,
'get_details': {'rate': 0.0},
'get_empty': 0,
'get_empty_details': {'rate': 0.0},
'get_no_ack': 0,
'get_no_ack_details': {'rate': 0.0},
'publish': 274618,
'publish_details': {'rate': 0.0},
'redeliver': 16,
'redeliver_details': {'rate': 0.0}},
'messages': 21,
'messages_details': {'rate': 0.0},
我有两个问题:
- 我应该使用任何其他 RMQ API 端点来进行个人级别的消息检查吗?我试图避免仅仅为了调试目的而启动花服务器。
- 为什么这 21 个任务无法通过 UI 检查,或者为什么它们似乎只是无所事事地堆积在这个队列中,这有什么明显的原因吗?
剩下的消息是 unacked
,这意味着它们被发送给了一些尚未确认它们的消费者。
如果您手动关闭队列连接或未能从管理中确认它们的消费者 UI,他们应该恢复到 ready
状态并准备好再次使用。
在过去的几天里,我的 RMQ 服务器一直在累积从未从队列中清除的消息。我正在使用 RMQ 作为 celery 任务代理,并且消息在主 celery worker 队列中累积:
当任务通过管道进入、处理它们然后再次进入空闲状态时,队列会间歇性地切换到活动状态。然而,这 21 条消息永久存在。当我点击 celery
队列 UI 并尝试查找这些消息进行检查时,我被告知我的队列是空的:
我已经尝试通过 URL 端点 https://<user>:<password>@<host url>/api/queues/%2f/celery
检查消息。我可以在 message_stats
部分看到有 21 条消息,但我无法单独检查这些消息:
'message_stats': {'ack': 274597,
'ack_details': {'rate': 0.0},
'deliver': 274634,
'deliver_details': {'rate': 0.0},
'deliver_get': 274634,
'deliver_get_details': {'rate': 0.0},
'deliver_no_ack': 0,
'deliver_no_ack_details': {'rate': 0.0},
'get': 0,
'get_details': {'rate': 0.0},
'get_empty': 0,
'get_empty_details': {'rate': 0.0},
'get_no_ack': 0,
'get_no_ack_details': {'rate': 0.0},
'publish': 274618,
'publish_details': {'rate': 0.0},
'redeliver': 16,
'redeliver_details': {'rate': 0.0}},
'messages': 21,
'messages_details': {'rate': 0.0},
我有两个问题:
- 我应该使用任何其他 RMQ API 端点来进行个人级别的消息检查吗?我试图避免仅仅为了调试目的而启动花服务器。
- 为什么这 21 个任务无法通过 UI 检查,或者为什么它们似乎只是无所事事地堆积在这个队列中,这有什么明显的原因吗?
剩下的消息是 unacked
,这意味着它们被发送给了一些尚未确认它们的消费者。
如果您手动关闭队列连接或未能从管理中确认它们的消费者 UI,他们应该恢复到 ready
状态并准备好再次使用。