使用Celery(RabbitMQ,Django)检索队列长度



我在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,也有一些命令行命令。

相关内容

  • 没有找到相关文章

最新更新