【问题标题】:AsyncResult returns None if task completed successfully如果任务成功完成,AsyncResult 返回 None
【发布时间】:2019-01-13 03:55:02
【问题描述】:

我目前正在开发一个系统,其中我有一个处理组件,它使用 celery 将任务分配给工作人员和一个后端,您可以在其中检查更长时间运行的任务的状态。

我遵循this 示例,一切都按预期工作。您可以安排任务,并且在任务运行时,您可以查看其状态。但是,在任务完成后,它仅在任务完成但出现错误时才有效。如果任务成功完成,AsyncResult 在墓碑仍然存在时返回 None 类型,据我所知,这是未记录的行为。在 tombstone 过期并且 celery 不再知道 task_id 后,它再次返回 PENDING 状态,这是预期的。

我使用 redis 作为结果后端,如果这有什么不同的话。

任何想法为什么我会为成功的任务返回 None 类型?

【问题讨论】:

    标签: python-2.7 redis celery


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢兄弟。你救了我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2013-08-24
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多