python ray 未完成所有远程调用

python ray not completing all remote calls

所以我有一个简单的脚本

import ray
import requests as r

ray.init()

@ray.remote
def f(i):
    print(i)
    r.get("http://127.0.0.1:5000/" + str(i))
    return i

if __name__ == "__main__":
    for k in range(1000):
        f.remote(k)

当我 运行 此脚本仅发生 250 次远程调用时,程序终止而不是执行所有 1000 次远程调用。

看了ray browser仪表板我真的一点头绪都没有

当我设置 local_mode=True 时程序完成所有 1000 次调用

f.remote(k) 开始 执行远程调用,但不等待调用完成。因此程序在调用完成之前完成并关闭。

您应该使用 ray.get 来确保调用完成。

refs = []
for k in range(1000):
    refs.append(f.remote(k)
ray.get(refs)

有关详细信息,请参阅 this answer