有没有办法找出Spring AMQP中已经声明的队列的订户计数?我找到了一个com.rabbitmq.client.Channel
类,可以使用它来完成此任务:
int consumerCount = channel.queueDeclare().getConsumerCount();
但是,这会声明一个具有随机名称的新队列,并且由于它没有使用者,因此它将返回0
。
对于已经声明的队列,有什么办法吗?
答案 0 :(得分:2)
您可以使用passive declaration。
被动声明仅检查具有提供名称的实体是否存在。如果是这样,则该操作为无操作。对于成功的队列,被动声明将返回与非被动声明相同的信息,即队列中处于就绪状态的使用者和消息的数量。
Queue.DeclareOk response = channel.queueDeclarePassive("queue-name");
// returns the number of messages in Ready state in the queue
response.getMessageCount();
// returns the number of consumers the queue has
response.getConsumerCount();