如何使用 NodeJs (amqplib) 获取 RabbitMQ 队列的未确认消息计数

问题描述

如何使用 NodeJs (amqplib) 获取 RabbitMQ 队列的未确认消息计数。

我们可以使用 checkQueueassertQueue 方法轻松获取队列的总消息数。

我有很多动态队列,这些队列被多个消费者消费,我想在处理完所有作业后删除队列。

问题是当消费者附加到队列时,我检查消息计数是否为零,如果消息计数为零,则我删除队列,但当时如果该队列有一些未确认的消息,但消息计数为零,那么我该如何处理。

解决方法

在这种情况下,您可以将 auto-delete flag 设置为在创建时排队并在使用时检查队列大小。

当队列大小为 0 时,您只需停止此消费者的消费进程并关闭此消费者的通道。当所有消费者关闭他们的通道队列时,RabbitMQ 将自动删除。