2013-10-11 82 views
3

从我所看到的,任务状态,完全取决于对CELERY_TASK_RESULT_EXPIRES设置的值 - 如果我这个区间内检查任务状态后任务执行完毕,返回的状态:芹菜任务状态取决于CELERY_TASK_RESULT_EXPIRES

AsyncResult(task_id).state 

是正确的。如果不是,该州将不会更新,并将永远保持不变。

任何人能解释我为什么会发生这种情况?这是一个功能还是错误? 为什么任务状态取决于结果到期时间,即使我忽略结果?

(芹菜版本:3.0.23,结果后台:AMQP)

回答

4

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

+0

ignore_state听起来很尴尬顺便说一句,也许有人可以想出一个更好的名字 – asksol

+0

是的,我认为他们正在以同样的方式返回......虽然result_expires设置会影响人们可以得到状态,即使忽略结果。我理解背后的理由。现在我的问题是,我不是真的对结果感兴趣,但我对状态感兴趣... – Clara

+0

p.s.你可以把它称为update_states或不便,而不是ignore_states – Clara