据我所知,任务状态完全取决于为 CELERY_TASK_RESULT_EXPIRES 设置的值 - 如果我在任务完成执行后在此间隔内检查任务状态,则状态返回:
AsyncResult(task_id).state
是正确的。否则,状态将不会更新,并将永远保持 PENDING。
谁能解释一下为什么会这样?这是功能还是错误? 为什么任务状态取决于结果到期时间,即使我忽略了结果?
(Celery 版本:3.0.23,结果后端:AMQP)
最佳答案
状态和结果是一样的。结果后端最初用于存储返回值,然后扩展为存储任意状态。结果一词不再充分,因为它意味着任务已经完成。 ignore_result
应该是 ignore_state
,但我们还没有机会重命名它。我计划清理此处使用的术语,但需要一些时间才能向后兼容。
关于python - Celery 任务状态取决于 CELERY_TASK_RESULT_EXPIRES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19316133/