您无法使用 SDK 获取消息计数。 channel.queueDeclarePassive(queueName).getMessageCount() 通常不正确,因为它不会计算等待确认的消息。
您可以启用管理插件并通过 REST API 查询队列:
http://localhost:15672/api/queues/vhost/queue_name
响应包含消息总数以及处于处理/就绪状态的消息。
访问“localhost:15672/api”以查看有关如何调用它的更多详细信息。
这是它在本地服务器上的响应示例:
{
"memory":14680,
"message_stats":{
"publish":1,
"publish_details":{
"rate":0
}
},
"messages":1,
"messages_details":{
"rate":0
},
"messages_ready":1,
"messages_ready_details":{
"rate":0
},
"messages_unacknowledged":0,
"messages_unacknowledged_details":{
"rate":0
},
"idle_since":"2014-02-21 18:01:54",
"policy":"",
"exclusive_consumer_tag":"",
"consumers":0,
"backing_queue_status":{
"q1":0,
"q2":0,
"delta":[
"delta",
0,
0,
0
],
"q3":0,
"q4":1,
"len":1,
"pending_acks":0,
"target_ram_count":"infinity",
"ram_msg_count":1,
"ram_ack_count":0,
"next_seq_id":1,
"persistent_count":0,
"avg_ingress_rate":0,
"avg_egress_rate":0,
"avg_ack_ingress_rate":0,
"avg_ack_egress_rate":0
},
"status":"running",
"name":"01d99c41-7e08-4122-a7f3-c57d25a460f5",
"vhost":"/",
"durable":true,
"auto_delete":false,
"arguments":{
},
"node":"rabbit@SHACNG109WQPY"
}