5

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

我想查看最近执行的任务列表(最近 2-7 天)。

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

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

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

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

4

2 回答 2

5

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

于 2016-08-04T10:08:46.893 回答
4

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

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

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

如果您这样做,Flower 将向您显示任务执行的历史记录,无论从何时开始。

于 2016-03-01T15:50:15.063 回答