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