我只想在使用芹菜在我的 django 应用程序中完成另一个进程后超越一个进程



我是芹菜的新手。我只想在完成另一个进程后运行另一个进程。搜索时,我发现了一个代码

class CallbackTask(Task):
    def on_success(self, retval, task_id, args, kwargs):
        print("success")
        pass
    def on_failure(self, exc, task_id, args, kwargs, einfo):
        print("fail")
        pass

@celery.task(base=CallbackTask) # this does the trick
def add_val(x, y):
    time.sleep(20)
    return x + y

运行该代码时,它按以下顺序显示状态:

  1. 已接收任务

    20分钟后计时器

  2. 成功(它正在从"on_success"方法打印(

3.任务完成(#ans-7(

实际上,这里的问题是"成功"是在我的实际答案之前打印的,如果我在回答后有任何方法可以得到它,那么我可以轻松地将我的第二个过程放入"on_success"方法并执行它。

任务已完成,因为on_success获取返回值。就像芹菜记录事情时的样子,看起来on_success是在函数返回之前运行的add_val

尽管on_success方法可能有效,但我相信回调或链将是处理此问题的"官方"方法。

相关内容

  • 没有找到相关文章

最新更新