首页 > 解决方案 > Rabbitmq/Pika - 在 python 中获取给定队列的消费者列表

问题描述

我想找到一种方法来获取连接到 python 中 rabbitmq 中给定队列的消费者列表。需要一个脚本来返回连接到队列(对我来说是它的设备)的 ip 和名称的消费者列表。

谢谢您的帮助!

connection = pika.BlockingConnection(parameters)
channel = connection.channel()
queue_state = channel.queue_declare(
    queue='some_Queue', passive=True,  durable=True)

我找到了一种方法来计算消费者,但不是消费者本身的列表..所以仍然没有解决方案:

consumers = queue_state.method.consumer_count
print(consumers)

标签: pythonrabbitmqpika

解决方案


尝试使用监控 API:

import requests
from requests.auth import HTTPBasicAuth

api_queues = 'http://' + host_ip + ':' + api_port + '/api/queues/%2F/'+queue_name
res = requests.get(api_queues, auth=HTTPBasicAuth(login, password))
res_json = res.json()
# Number of consumers
number_of_consumers= len(res_json['consumer_details'])

请不要在虚拟主机为“/”时使用“%2F”。

问候


推荐阅读