我目前正在一个系统上工作,该系统具有一个处理组件,该组件使用celery向工作人员分发任务,还有一个后端,您可以在其中检查长时间运行的任务的状态。
我遵循了this的示例,一切正常。您可以安排任务,并在任务运行时查看其状态。但是,任务完成后,仅当任务以错误完成时才起作用。如果任务成功完成,则逻辑删除仍然活着时,AsyncResult将返回None类型,据我所知,这是未记录的行为。墓碑过期后,不再知道芹菜task_id,它将再次返回PENDING状态,这是预期的。
如果这有任何区别,我正在使用redis作为结果后端。
有什么主意为什么我会为成功完成的任务返回None类型?
答案 0 :(得分:1)
错误实际上是我自己的,因为在获取任务状态的API调用中,我尝试获取task.info。由于我的任务完成后未返回任何内容,因此task.info为None。
修正了我的错误,现在可以正常工作。