我有多个工人,每个工人都有自己的队列。它们都是使用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个返回结果。
编辑:添加了示例代码
谢谢。