来自不同REMOTE芹菜应用程序/工作人员的组或链任务

时间:2018-02-06 14:29:36

标签: python celery celery-task

我想尝试在不同的/远程服务器/机器上运行来自不同芹菜应用程序的分组任务。

例如,在应用程序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任务。

非常感谢任何想法。提前谢谢!

0 个答案:

没有答案