6

据我所知,任务状态完全取决于为 CELERY_TASK_RESULT_EXPIRES 设置的值 - 如果我在任务完成执行后在此间隔内检查任务状态,则返回的状态为:

AsyncResult(task_id).state

是正确的。如果没有,状态将不会更新,并且将永远保持 PENDING 状态。

谁能解释我为什么会这样?这是功能还是错误?为什么任务状态取决于结果到期时间,即使我忽略了结果?

(Celery 版本:3.0.23,结果后端:AMQP)

4

1 回答 1

7

状态和结果是一样的。结果后端最初用于存储返回值,然后扩展为存储任意状态。术语结果不再足够,因为它意味着任务已经完成。 ignore_result应该是ignore_state,但我们还没有机会重命名它。我有一个清理这里使用的术语的计划,但是向后兼容需要一些时间。

于 2013-10-18T17:31:11.983 回答