我想尝试在不同的/远程服务器/机器上运行来自不同芹菜应用程序的分组任务。
例如,在应用程序1中,在服务器1中运行,我有这个任务:
@app.task(name='func1', bind=True, queue='func1')
def func1(self, args):
ret = {"func1_status":"success"}
return ret
在应用程序2中,在服务器2中运行,我有这个任务:
@app.task(name='func2', bind=True, queue='func2')
def func2(self, args):
ret = {"func2_status":"success"}
return ret
现在在应用程序3中,在服务器3中运行,我想要一个使用组中的2个远程任务的任务:
from celery import chain, group
from celery.result import allow_join_result
@app.task(name='func3', bind=True, queue='func3')
def func3(self, args):
ret = None
res = group(func2.s(args), func1.s(args))()
with allow_join_result():
ret = res.get()
return ret
然后我将通过func3添加/调用任务,如下所示:
res = func3.delay(args)
所以上面是我想要做的,但我不知道如何在func3的组中远程导入/调用func1和func2任务。
非常感谢任何想法。提前谢谢!