python - 如何在 django 中执行异步任务?
问题描述
假设我需要请求多个服务器做出响应
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
oraioHttp
和yield
(?)
我的问题被标记为可能重复,那里的答案建议使用线程。我认为手动处理线程是可以避免的(根据我过去在 C++ 中使用多线程的经验)
然后我发现https://stackoverflow.com/a/23902034/433570 request-future 在这里似乎很有希望..
解决方案
推荐阅读
- javascript - JavaScript 混合应用 crashlytics 日志
- sql - JPA自我多对多加入额外的列
- sql - TSQL - 在选择查询中返回布尔结果
- django - Django - Apache2 内部服务器错误
- odoo - 在搜索视图中按相关 one2many 字段过滤
- azure-iot-sdk - 基于 websockets 的 IoT Edge Mqtt
- search - 有没有一种通用的方法来计算产品型号或规格之间的相似度?
- ios - Swift UIRefreshControl 在 iPhone 8 上不起作用
- ios - 在 Swift 中将数据传递给 ViewModel
- jquery - 隐藏 div 出现时让整个表单保持焦点