我正在使用RabbitMQ作为我的消息代理,我的工作人员是芹菜任务。我正在尝试诊断一个问题,我将任务列入RabbitMQ,但Celery不会选择。
有没有办法可以检查RabbitMQ中哪些任务被排队?我想查看它们排队的日期和时间,指定的任何ETA,参数和任务名称。
我无法在文档中找到这些信息 - 也许我忽略了它 - 并希望你们中的一些人可能知道检查任务队列的简单方法。感谢。
答案 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 plugin为enabled,就可以从队列中消耗任意数量的消息,并可选择重新排队:
rabbitmqadmin get queue=queue_name requeue=true count=100
答案 3 :(得分:0)
我相信您要查找的命令是:
celery inspect reserved
文档[1]具有以下描述:
保留的任务是已收到但仍在等待执行的任务。