我想并行发出 http 请求,这是我的代码(骨架)在使用 ray 时的样子:
@ray.remote
def issue_request(user_id):
r = requests.post(url , json, headers)
ray.get([issue_request.remote(id_token[user_id]) for _ in range(500)])
与以下相比,它的运行速度要慢得多:
def issue_request(user_id):
r = requests.post(url , json, headers)
jobs = []
for i in range(500):
process = multiprocessing.Process(target=issue_request,
args=(admin_id))
jobs.append(process)
for j in jobs:
j.start()
# Ensure all of the processes have finished
for j in jobs:
j.join()
这台机器有两个核心,似乎 ray 只启动了两个进程来处理 500 个请求。有人可以告诉我如何告诉 ray 每个请求启动 1 个工作人员/进程吗?