如何解决RabbitMQ有不可见的队列消息
在过去的几天中,我的RMQ服务器一直在累积从未从队列中清除的消息。我使用RMQ作为celery任务代理,消息在celery主队列中累积:
当通过管道传输任务,处理任务然后再次使其空闲时,队列间歇地切换到活动状态。但是,那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端点进行个人级消息检查吗?我试图避免仅出于调试目的而启动花服务器。
- 是否有明显的原因为什么无法通过UI检查这21个任务,或者为什么它们似乎只是闲置地堆积在此队列中?
解决方法
剩余的消息是unacked
,这意味着它们已发送给尚未确认它们的某些使用者。
如果您手动关闭队列连接或无法从管理UI确认使用方的使用者,则它们应恢复为ready
状态并准备再次使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。