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

eug*_*ene 5 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})
Run Code Online (Sandbox Code Playgroud)

我正在为每个请求执行同步请求,我想一定有更好的方法来处理这种情况。

(如果任务很长,我会使用 celery,但事实并非如此,仍然执行多个同步请求似乎不对)

处理这个问题的推荐范例(?)是什么?

  • 编辑

我期待使用asyncor aioHttpand yield(?)

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

然后我发现/sf/answers/1673142411/ request-future 在这里似乎很有希望..