我可以单独查看和删除 Celery / RabbitMQ 任务吗?
Posted
技术标签:
【中文标题】我可以单独查看和删除 Celery / RabbitMQ 任务吗?【英文标题】:Can I review and delete Celery / RabbitMQ tasks individually? 【发布时间】:2018-02-05 15:06:54 【问题描述】:我正在运行 Django + Celery + RabbitMQ。在修改了一些任务名称后,我开始收到“未注册的任务”KeyErrors,即使在使用此键从 Django Celery Beat 的定期任务表中删除任务并重新启动 Celery 工作者之后也是如此。
原来是Celery / RabbitMQ tasks are persistent。我最终通过reimplementing the legacy tasks as dummy methods解决了这个问题。
将来,我不希望清除队列、重新启动工作程序或重新实现旧方法。相反,我想检查队列并单独删除任何遗留任务。这可能吗? (最好在 Django 管理界面的上下文中。)
【问题讨论】:
相关但不涉及删除任务***.com/questions/13049829/… 参考docs.celeryproject.org/en/latest/userguide/monitoring.html 花插件有助于检查 【参考方案1】:Celery inspect
可能会有所帮助
查看活动队列:
celery -A proj inspect active_queues
终止进程:
celery -A proj control invoke process_id
查看所有可用的检查选项:
celery inspect --help
【讨论】:
以上是关于我可以单独查看和删除 Celery / RabbitMQ 任务吗?的主要内容,如果未能解决你的问题,请参考以下文章
重试丢失或失败的任务(Celery、Django 和 RabbitMQ)