如何解决python ray无法完成所有远程调用
所以我有一个简单的脚本
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浏览器仪表板,我还是一无所知
当我设置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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。