gpt4 book ai didi

python - Celery Python 中的异步子任务

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:50 25 4
gpt4 key购买 nike

我需要将 celery 中的子任务异步调用到另一个工作人员(在另一台机器上),如下所示:

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

#worker2.py
@task()
def main(x,y):
result=db.query.async((x,y), queue='db')
try:
a=result.get(timeout=5)
except celery.exceptions.TimeoutError:
....

但是我在启动工作程序时收到警告:运行时警告:切勿在任务中调用 result.get()!

如何从另一个任务调用异步任务?我不会使用链条、弦等。

最佳答案

您永远不想阻止一项任务来等待另一项任务,因此正确的方法是使用 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()

关于python - Celery Python 中的异步子任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35790628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com