【发布时间】:2017-02-02 10:41:03
【问题描述】:
我有 3 个这样的芹菜任务:
@app.task
def main_func():
if this:
func1.delay()
else:
func2.delay()
@app.task
def func1():
... do something ...
@app.task
def func2():
... do something ...
函数 main_func 计划每 30 秒执行一次。如果满足某些条件,则调用func1 的芹菜任务,否则为func2 创建任务。
现在,当我运行 celery worker 并执行函数 main_func 时,它会再次使用 func1 或 func2 调用自身,从而导致循环。
现在在日志中,任务在连续执行之间应该有 30 秒的时间差,但由于循环,它们会继续一个接一个地执行。
如何防止这种情况发生?
注意:我使用的是 celery 4.0.2
【问题讨论】: