芹菜任务历史记录

时间:2016-03-01 15:32:58

标签: python celery flower

我正在构建一个在Celery框架之上执行任务的框架。

我希望看到最近执行的任务列表(最近2-7天)。

查看API我可以找到app.backend对象,但无法弄清楚如何进行查询以获取任务。

例如,我可以使用像Redis或数据库这样的后端。我不想显式地将SQL查询写入数据库。

有没有办法使用API​​处理任务历史记录/结果?

我尝试使用Flower,但它只能处理事件,并且在开始之前无法获取历史记录。

2 个答案:

答案 0 :(得分:4)

您需要将任务结果保留在后端,例如Redis。 Celery文档包含有关如何执行此操作的信息:

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#keeping-results

您还想设置CELERY_TASK_RESULT_EXPIRES配置参数,因为默认情况下,结果会在一天后被丢弃。

如果你这样做,那么Flower将向你展示任务执行的历史,无论它何时开始。

答案 1 :(得分:4)

您可以使用persisent选项,例如:flower -A ctq.celery --persistent=True