django - 使用 Celery(RabbitMQ、Django)检索队列长度

标签 django queue rabbitmq celery django-celery

我在 django 项目中使用 Celery,我的代理是 RabbitMQ,我想检索队列的长度。我浏览了 Celery 的代码,但没有找到执行此操作的工具。我在 stackoverflow ( Check RabbitMQ queue size from client ) 上发现了这个问题,但我觉得它不太令人满意。

一切都在 celery 中设置,因此应该有某种神奇的方法来检索我想要的内容,而无需指定 channel /连接。

有人知道这个问题吗?

谢谢!

最佳答案

这里是一个关于如何读取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 先前建议的那样

关于django - 使用 Celery(RabbitMQ、Django)检索队列长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863626/

相关文章:

django - UUIDField 与带有 UUID 的 Charfield 比较?

Python线程: Queue workers - hang the program

c++ - OpenCL:循环内核?

rabbitmq - 对于低端设置,RabbitMQ有什么好的替代品吗?

c# - RabbitMQ:在 pub/sub 中,消费者是在队列中轮询新消息还是服务器推送消息?

java - Spring AMQP 集成 - 消费者手册确认

Django - 如何检查查询集的所有属性?

python - 无法在 Elastic Beanstalk 上部署 Django 应用程序

django - 使用 Buildout/djangorecipe 布局 Django 应用程序的常用方法是什么?

node.js - NodeJS 排队异步函数