关于python:修改requests库session默认连接数

67次阅读

共计 714 个字符,预计需要花费 2 分钟才能阅读完成。

requests 连贯复用

家喻户晓,应用 requests.Session()能够复用连贯,并发时能大幅晋升效率。

Session 连接数

同一 Session 中,requests 库默认的连接池和最大连接数都是 10。

连接池能够了解为 host,最大连接数能够了解为同一个 host 的连接数。

这样的话,并发数就会被限度在 10。

所以在 vs code 中调试时,发现不论代码中并发写多大,都只有 10 个虚构线程。

解决办法 session.mount()

在间接调用 requests 时,默认应用了上面的配置:

self.mount('https://', HTTPAdapter())
self.mount('http://', HTTPAdapter())

其中,HTTPAdapter()默认参数为
pool_connections=10, pool_maxsize=10, max_retries=0, pool_block=False
pool_connections 是最多连贯的不同 host 数,
pool_maxsize同一 host 最多连接数。

所以能够应用上面的办法批改连接数:

s = requests.Session()
s.mount('https://', requests.adapters.HTTPAdapter(pool_connections=20, pool_maxsize=100))
s.mount('http://', requests.adapters.HTTPAdapter(pool_connections=20, pool_maxsize=100))
# http https 别离对应各自类型,只是须要别离设置

批改之后再到并发中发送申请,并发数就不会限度为 10 了。

正文完
 0