我在django项目中使用Celery,我的代理是RabbitMQ,我想检索队列的长度。我浏览了Celery的代码,但没有找到这样做的工具。我在stackoverflow(从客户端检查RabbitMQ队列大小)上发现了这个问题,但我觉得它不令人满意。
所有的东西都是在芹菜中设置的,所以应该有某种神奇的方法来检索我想要的东西,而不需要指定通道/连接。
有人知道这个问题吗?
谢谢!
下面是一个关于如何在rabbitMQ中读取给定队列的队列长度的示例:
def get_rabbitmq_queue_length(q):
from pyrabbit.api import Client
from pyrabbit.http import HTTPError
count = 0
try:
cl = Client('localhost:15672', 'guest', 'guest')
if cl.is_alive():
count = cl.get_queue_depth('/', q)
except HTTPError as e:
print "Exception: Could not establish to rabbitmq http api: " + str(e) + " Check for port, proxy, username/pass configuration errors"
raise
return count
这是使用pyrabbit,正如Philip
PyRabbit可能是您正在寻找的,它是RabbitMQ管理接口API的Python接口。它将允许您查询队列及其当前消息计数。
您可以使用inspect
模块来检查芹菜中的工人。这是导游。
对于RabbitMQ
,也有一些命令行命令。