如何在RabbitMQ中查看排队的任务?

时间:2012-10-24 13:04:48

标签: python rabbitmq celery

我正在使用RabbitMQ作为我的消息代理,我的工作人员是芹菜任务。我正在尝试诊断一个问题,我将任务列入RabbitMQ,但Celery不会选择。

有没有办法可以检查RabbitMQ中哪些任务被排队?我想查看它们排队的日期和时间,指定的任何ETA,参数和任务名称。

我无法在文档中找到这些信息 - 也许我忽略了它 - 并希望你们中的一些人可能知道检查任务队列的简单方法。感谢。

4 个答案:

答案 0 :(得分:9)

您可以使用Flower实时监控任务。

https://github.com/mher/flower

还要检查检查RabbitMQ服务器状态的 rabbitmqctl 命令:

http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

rabbitmqctl list_queues

答案 1 :(得分:6)

还有一些芹菜任务来监控队列:

http://docs.celeryproject.org/en/latest/userguide/monitoring.html

查看以下命令:

#shows status of all worker nodes
celery status
#List active tasks
celery inspect active
#Show worker statistics (call counts etc.)
celery inspect stats      

答案 2 :(得分:0)

只要management pluginenabled,就可以从队列中消耗任意数量的消息,并可选择重新排队:

rabbitmqadmin get queue=queue_name requeue=true count=100

答案 3 :(得分:0)

我相信您要查找的命令是:

celery inspect reserved

文档[1]具有以下描述:

  

保留的任务是已收到但仍在等待执行的任务。