在 Celery 中,我只想在所有其他任务完成后才开始一项任务。
我找到了一些像这样的资源:Celery 在其他任务完成时启动任务 https://stackoverflow.com/questions/25576890/celery-starting-a-task-when-other-tasks-have-completed and
所有任务完成后运行任务 https://stackoverflow.com/questions/16308849/running-a-task-after-all-tasks-have-been-completed但我对芹菜很陌生,无法真正理解上述内容(或与此相关的许多其他资源)。
所以我在 a 中定义了一个任务tasks.py:
@celapp.task()
def sampleFun(arg1, arg2, arg3):
# do something here
我这样称呼它:
for x in xrange(4):
tasks.sampleFun.delay(val1, val2, val3)
我假设会创建 4 个不同的任务。这实际上发生了,因为我可以在网络界面上看到同样的情况芹菜花.
现在我想做的是添加另一个任务。说最终任务仅当上述 4 个任务完成执行后才应启动。
我还读了一些文档Celery 中的组和和弦 http://docs.celeryproject.org/en/latest/userguide/canvas.html#the-primitives但它说,如果我想这样做,我需要将我的任务分组在一起,以便它们并行执行。我不想那样做。 (可能是个好主意,但现在我的目标是能够理解事物。所以目前我并没有真正关注性能等)
这个怎么做?
另一个听起来可能相当愚蠢的更基本的问题是:
当我们说tasks.sampleFun.delay
它是否创建异步任务?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)