我正在构建一个在Celery框架之上执行任务的框架。
我希望看到最近执行的任务列表(最近2-7天)。
查看API我可以找到app.backend
对象,但无法弄清楚如何进行查询以获取任务。
例如,我可以使用像Redis或数据库这样的后端。我不想显式地将SQL查询写入数据库。
有没有办法使用API处理任务历史记录/结果?
我尝试使用Flower,但它只能处理事件,并且在开始之前无法获取历史记录。
答案 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