首页 > 解决方案 > 如果失败(链、link_error 和 get_leaf)如何等待 celery 任务?

问题描述

我正在使用 falcon 和 celery 编写后端,并且我使用具有相同逻辑的多个端点和各种对象,其中一个端点应该与相同的流程同步运行。

当发生可怕的事情并触发另一个任务优雅地完成时,流程是由多个带有 link_error 的链构建的。

如果链成功运行,则以下解决方案可以正常工作。

def on_post(self, req, res):
   result = run_asynchronously()
   leaf = result.get_leaf()
   res.media = leaf.build_response()

如果在任务运行时发生异常,则会触发 link_error,执行其逻辑并触发清理以优雅地完成。error_handler(链中的link_error),get_leaf返回异常而不是等待新触发的任务(在link_error中)结果。

关于如何让它工作的任何建议?

标签: python-3.xcelerycelery-taskfalconframework

解决方案


推荐阅读