假设我需要请求多个服务器做出响应
def view_or_viewset(request):
d1 = request_a_server() # something like requests.get(url, data)
d2 = request_b_server()
d3 = request_c_server()
d4 = do_something_with(d3)
return Response({"foo1": d1, "foo2": d2, "foo3": d3, "foo4": d4})
我正在为每个请求执行同步请求,我想必须有一种更好的方式来处理这种情况。
(如果任务很长,我会使用celery,但事实并非如此,仍然需要执行多个同步请求似乎不正确)
处理此问题的推荐范式(?)是什么?
我期望使用async
或aioHttp
和yield
(?)
并且我的问题被标记有可能的重复项,并且那里的答案建议使用线程。.我认为手动处理线程是要避免的(根据我过去在c ++中的多线程经验)
然后我发现https://stackoverflow.com/a/23902034/433570 request-future在这里似乎很有前途。