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

问题描述 投票:21回答:2

更新赏金

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


我知道我可以使用我的应用程序InspectControl类查看计划和活动任务。

i = myapp.control.inspect()

currently_running = i.active()
scheduled = i.scheduled()

但我找不到任何功能来显示已经完成的任务。我知道这些信息至少可以暂时访问,因为我可以通过它的task_id查找完成的任务:

>>> r = my task.AsyncResult(task_id=' ... ')
>>> r.state
u'SUCCESS'

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

celery celery-task
2个回答
6
投票

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

https://github.com/mher/flower


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.