Celery Python中的异步子任务

时间:2016-03-04 07:44:28

标签: python celery

我需要芹菜中的异步调用子任务给另一个工人(在另一台机器上),如下所示:

<Key-space>

但是我在启动工人时会收到警告: 运行时警告:永远不要在任务中调用result.get()!

如何从其他任务调用异步任务?我不会使用链,和弦等。

1 个答案:

答案 0 :(得分:1)

你永远不想阻止一个任务等待另一个任务,所以正确的方法是使用chain

db.py
@task()
def query(x, y):
   ...something
   return z

#worker2.py
@task()
def main(resultFromQuery, x, y):
   a = resultFromQuery.get(timeout=5)
   ...

res = chain(query.s(x,y), main.s(x,y));
res.get()