如果任务成功完成,则AsyncResult返回None

时间:2018-08-06 08:23:33

标签: python-2.7 redis celery

我目前正在一个系统上工作,该系统具有一个处理组件,该组件使用celery向工作人员分发任务,还有一个后端,您可以在其中检查长时间运行的任务的状态。

我遵循了this的示例,一切正常。您可以安排任务,并在任务运行时查看其状态。但是,任务完成后,仅当任务以错误完成时才起作用。如果任务成功完成,则逻辑删除仍然活着时,AsyncResult将返回None类型,据我所知,这是未记录的行为。墓碑过期后,不再知道芹菜task_id,它将再次返回PENDING状态,这是预期的。

如果这有任何区别,我正在使用redis作为结果后端。

有什么主意为什么我会为成功完成的任务返回None类型?

1 个答案:

答案 0 :(得分:1)

错误实际上是我自己的,因为在获取任务状态的API调用中,我尝试获取task.info。由于我的任务完成后未返回任何内容,因此task.info为None。

修正了我的错误,现在可以正常工作。