我是芹菜的新手。我只想在完成另一个进程后运行另一个进程。搜索时,我发现了一个代码
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
运行该代码时,它按以下顺序显示状态:
已接收任务
20分钟后计时器
成功(它正在从"on_success"方法打印(
3.任务完成(#ans-7(
实际上,这里的问题是"成功"是在我的实际答案之前打印的,如果我在回答后有任何方法可以得到它,那么我可以轻松地将我的第二个过程放入"on_success"方法并执行它。
任务已完成,因为on_success
获取返回值。就像芹菜记录事情时的样子,看起来on_success
是在函数返回之前运行的add_val
尽管on_success
方法可能有效,但我相信回调或链将是处理此问题的"官方"方法。