AsyncResult returns None 如果任务成功完成
AsyncResult returns None if task completed successfully
我目前正在开发一个系统,其中有一个使用 celery 将任务分发给工作人员的处理组件和一个后端,您可以在其中检查较长 运行 任务的状态。
我按照 this 示例进行操作,一切都按预期进行。您可以安排任务,当任务为 运行 时,您可以查看其状态。但是,任务完成后,它仅在任务完成但出现错误时才有效。如果任务成功完成,AsyncResult return 是一个 None 类型,而墓碑仍然存在,据我所知这是未记录的行为。在墓碑过期并且芹菜不再知道 task_id 之后,它再次 return 处于 PENDING 状态,这是预期的。
我正在使用 redis 作为结果后端,如果这有什么不同的话。
知道为什么我得到 None 类型 return 来完成任务吗?
错误实际上是我自己的,因为在获取任务状态的 API 调用中,我尝试获取 task.info
。由于我的任务在完成后没有 return 任何东西,因此 task.info
是 None
。
修正了我的错误,现在可以了。
我目前正在开发一个系统,其中有一个使用 celery 将任务分发给工作人员的处理组件和一个后端,您可以在其中检查较长 运行 任务的状态。
我按照 this 示例进行操作,一切都按预期进行。您可以安排任务,当任务为 运行 时,您可以查看其状态。但是,任务完成后,它仅在任务完成但出现错误时才有效。如果任务成功完成,AsyncResult return 是一个 None 类型,而墓碑仍然存在,据我所知这是未记录的行为。在墓碑过期并且芹菜不再知道 task_id 之后,它再次 return 处于 PENDING 状态,这是预期的。
我正在使用 redis 作为结果后端,如果这有什么不同的话。
知道为什么我得到 None 类型 return 来完成任务吗?
错误实际上是我自己的,因为在获取任务状态的 API 调用中,我尝试获取 task.info
。由于我的任务在完成后没有 return 任何东西,因此 task.info
是 None
。
修正了我的错误,现在可以了。