Celery:列出所有任务,计划,活动*和*完成

时间:2012-09-06 12:42:11

标签: celery celery-task

赏金更新

如果可能的话,我想要一个不涉及监控线程的解决方案。


我知道我可以使用我的应用Inspect的{​​{1}}类来查看预定的活动任务。

Control

但我找不到任何功能来显示已经完成的任务。我知道这些信息至少可以临时访问,因为我可以通过i = myapp.control.inspect() currently_running = i.active() scheduled = i.scheduled() 查找已完成的任务:

task_id

如何获得计划,活动和已完成任务的完整列表?或者可能一次列出所有任务?

2 个答案:

答案 0 :(得分:7)

Celery Flower实时显示任务(活动,finished,保留等)。它可以按时间,工人和类型过滤任务。

https://github.com/mher/flower

答案 1 :(得分:1)

不需要监视线程的一个选项是Celery on_success处理程序(使用bootsteps功能in 3.1+) - 这需要将相关信息写入您自己的数据存储区。

可能更好的选择,需要更少的代码,是以类似的方式使用task_success signal,记录您以后需要的信息。

Flower选项可能更简单,因为您在任务完成时查询Flower已经维护的信息 - 请参阅this answer