我在 django 项目中使用 Celery,我的代理是 RabbitMQ,我想检索队列的长度。我浏览了 Celery 的代码,但没有找到执行此操作的工具。我在 stackoverflow 上发现了这个问题(从客户端检查 RabbitMQ 队列大小 https://stackoverflow.com/questions/1038318/check-rabbitmq-queue-size-from-client),但我觉得这并不令人满意。
一切都是在 celery 中设置的,因此应该有某种神奇的方法来检索我想要的内容,而无需指定通道/连接。
有人对这个问题有任何想法吗?
Thanks !
以下是如何读取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 https://pypi.python.org/pypi/pyrabbit正如之前所建议的Philip https://stackoverflow.com/users/2296812/philip-cristiano
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)