如何在Django中执行异步任务?

时间:2019-05-18 14:28:29

标签: python django asynchronous

假设我需要请求多个服务器做出响应

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,但事实并非如此,仍然需要执行多个同步请求似乎不正确)

处理此问题的推荐范式(?)是什么?

  • 编辑

我期望使用asyncaioHttpyield(?)

并且我的问题被标记有可能的重复项,并且那里的答案建议使用线程。.我认为手动处理线程是要避免的(根据我过去在c ++中的多线程经验)

然后我发现https://stackoverflow.com/a/23902034/433570 request-future在这里似乎很有前途。

0 个答案:

没有答案