gpt4 book ai didi

python - 从 celery 任务中调用 async_result.get()

转载 作者:太空狗 更新时间:2023-10-30 00:21:35 25 4
gpt4 key购买 nike

我有一个 celery 任务调用另一个远程 任务(它在不同的 celery 应用程序上,在另一台服务器上..)。当我尝试 .get() 从我的任务中获取远程任务的结果时,如下所示:

@app.task()
def my_local_task():
result_from_remote = app.send_task('remote_task', [arg1, arg2])
return result_from_remote.get()

我收到这个错误:

RuntimeWarning: Never call result.get() within a task! See http://docs.celeryq.org/en/latest/userguide/tasks.html#task-synchronous-subtasks

In Celery 3.2 this will result in an exception being
raised instead of just being a warning.

warnings.warn(RuntimeWarning(E_WOULDBLOCK))

基本上我希望我的任务是“同步的”——我希望它等待远程任务的结果,我接受它。

我可以告诉 celery 没关系吗?当然有链接的解决方案,除了不可能链接远程任务。调用远程任务的唯一方法是使用 app.send_task,它返回一个 AsyncResult,而且我无法链接,因为我需要任务函数本身。

最佳答案

如果您知道自己正在做的是安全的,这里有一个片段可以隐藏警告:

from celery.result import allow_join_result

with allow_join_result():
result.get()

source

关于python - 从 celery 任务中调用 async_result.get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280456/

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