在多个apply_async可用时从中获取结果



我有多个工作者,每个人都有自己的队列。它们都在使用apply_async运行任务。

当每个任务可用时,我如何获得它们的结果,它们完成的顺序基本上是随机的。

知道如何在不使用睡眠循环的情况下做到这一点吗?

# task.py
@app.task
def mytask()
n = random.randrange(1,10)
time.sleep(n)
return n
task1 = worker1.mytask.apply_async(queue='queue1')
task2 = worker2.mytask.apply_async(queue='queue2')
task3 = worker3.mytask.apply_async(queue='queue3')

希望应用程序停止,直到其中一个任务完成并返回第一个任务的结果。如果我添加了.join((,我必须在所有3个上使用,并且不知道会首先完成,必须等到所有3个返回结果。

编辑:添加示例代码

谢谢。

您可以使用一些Celery工作流原语对它们进行分组,最明显的是group。

相关内容

  • 没有找到相关文章

最新更新