修改requests库session默认连接数

Posted 二毛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改requests库session默认连接数相关的知识,希望对你有一定的参考价值。

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了。

以上是关于修改requests库session默认连接数的主要内容,如果未能解决你的问题,请参考以下文章

Oracle查看、修改连接数

oracle查看和修改session和最大连接数

oracle查看和修改session和最大连接数

华硕RT-AC51U支持的最大并行连接数是多少啊?

python requests headers自定义问题

Max retries exceeded with url错误