11

有没有办法返回未确认的消息数量?

我正在使用此代码来获取队列中的消息数:

DeclareOk declareOk = amqpAdmin.getRabbitTemplate().execute(
        new ChannelCallback<DeclareOk>() {
            public DeclareOk doInRabbit(Channel channel)
                throws Exception {
                return channel.queueDeclarePassive(name);
            }
        });
return declareOk.getMessageCount();

但我也想知道未确认消息的数量。

我已经看到 RabbitMQ 管理工具包含该信息(对于每个队列,它给出了就绪/未确认和总消息的数量),我想一定有一种方法可以从 Java/Spring 中检索这些信息。

谢谢

更新

好的,似乎没有办法以编程方式完成,因为配置/队列列表不是 AMPQ 的一部分。

可以启用管理插件并查询有关队列的 REST Web 服务(除其他外)。更多信息在这里:

http://www.rabbitmq.com/management.html

4

2 回答 2

17

正如您在更新中所说,如果启用管理插件,则可以查询其余 api:

例如:

`http://username:password@queue-server:15672/api/queues/%2f/queue_name.queue`

这将返回 json(除其他外)

  • 消息未确认
  • messages_ready

如果您有通往服务器的安全路线,那就太好了。

于 2014-03-10T20:48:43.523 回答
1

3.8.9 版本的实际网址:

http://username:password@queue-server:15672/api/queues/%2F/queue-name

于 2020-12-16T16:21:59.007 回答