与其他服务交互及数据传输优化
1. 会话挂载与连接池管理
在与多个 HTTP 服务交互时, session.mount(host, adapter) 方法能让请求在每次调用任何 HTTP 服务时使用 HTTPTimeoutAdapter 。例如, host 设为 http:// 时可作为通用匹配。
# 示例:为特定主机挂载自定义适配器
adapter2 = HTTPTimeoutAdapter(max_retries=1, timeout=1.)
session.mount('http://myspecial.service', adapter2)
这样,一个请求会话对象就能与多个 HTTP 服务交互。
requests 库底层使用 urllib3 ,会为每个调用的主机创建一个连接池,并在代码调用该主机时复用连接。在单线程的 Flask 应用中,连接池作用不大,每个调用依次进行,每个远程主机只保持一个连接。但在多线程且有大量并发连接的 Flask 应用中,连接池能控制与其他服务的连接数量,避免无限打开同时连接导致灾难。
HTTPTimeoutAdapter 类可控制连接池的增长,其继承自 HTTPAdapter ,能通过构造函数传入以下选项:
| 参数 | 说明 |
| ---- | ---- |
| <
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



