celery - 以编程方式列出队列

dan*_*axx 4 rabbitmq celery

如何使用 Python 代码以编程方式列出在 RabbitMQ 代理上创建的当前队列以及连接到它们的工作线程数量?这相当于:

rabbitmqctl list_queues name consumers
Run Code Online (Sandbox Code Playgroud)

ksr*_*ini 5

我这样做并在网页上显示所有队列及其详细信息(消息准备好,未确认等) -

import kombu
conn = kombu.Connection(broker_url)# example 'amqp://guest:guest@localhost:5672/'
conn.connect()
client = conn.get_manager()
queues = client.get_queues('/')#assuming vhost as '/'
Run Code Online (Sandbox Code Playgroud)

您需要安装 kombu,并且队列将是一个字典,其中的键代表队列名称。我想我是在挖掘 celeryflower(用于监控 celery 的工具)的代码时得到的。

更新:正如 @zaq178miami 所指出的,您还需要具有 http API 的管理插件。我忘记了我已经在rabbitmq中启用了。