代码之家  ›  专栏  ›  技术社区  ›  sobek

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

  •  0
  • sobek  · 技术社区  · 6 年前

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

    我跟着 this 以身作则,一切如期而至。您可以安排任务,当任务运行时,您可以看到其状态。但是,在任务完成后,只有在任务完成时出现错误时,它才起作用。如果任务成功完成,AsyncResult将在墓碑仍处于活动状态时返回None类型,据我所知,这是未记录的行为。当墓碑过期并且芹菜不再知道任务id后,它再次返回一个等待状态,这是预期的。

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

    你知道为什么我会得到一个成功任务的无类型回报吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   sobek    6 年前

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

    修正了我的错误,现在它成功了。