urllib3连接池绑定在哪里?
where is the urllib3 connection pool bound?
如果一个新的请求会话是用不同的方法实例化的,就像这样...
myutil.py
import requests
def method1():
s1 = requests.Session()
def method2():
s1 = requests.Session()
requests.packages.urllib3.poolmanager.PoolManager
边界在哪里?它是全局绑定以便在 s1 和 s2 之间共享连接池,还是绑定到每个方法的堆栈以便 s1 和 s2 具有不同的连接池?
如果它绑定到每个方法的堆栈,我有什么选项可以共享连接池?例如,我应该创建一个 transport adapter 然后在方法之间共享:
myutil.py
import requests
from requests.adapters import HTTPAdapter
httpAdapter = HTTPAdapter(pool_connections=10, pool_maxsize=100)
def method1():
s1 = requests.Session()
s1.mount('https://', httpAdapter)
def method2():
s1 = requests.Session()
s2.mount('https://', httpAdapter)
我已经做了一些测试,似乎池没有全局绑定。
有关详细信息,请参阅 。
如果一个新的请求会话是用不同的方法实例化的,就像这样...
myutil.py
import requests
def method1():
s1 = requests.Session()
def method2():
s1 = requests.Session()
requests.packages.urllib3.poolmanager.PoolManager
边界在哪里?它是全局绑定以便在 s1 和 s2 之间共享连接池,还是绑定到每个方法的堆栈以便 s1 和 s2 具有不同的连接池?
如果它绑定到每个方法的堆栈,我有什么选项可以共享连接池?例如,我应该创建一个 transport adapter 然后在方法之间共享:
myutil.py
import requests
from requests.adapters import HTTPAdapter
httpAdapter = HTTPAdapter(pool_connections=10, pool_maxsize=100)
def method1():
s1 = requests.Session()
s1.mount('https://', httpAdapter)
def method2():
s1 = requests.Session()
s2.mount('https://', httpAdapter)
我已经做了一些测试,似乎池没有全局绑定。
有关详细信息,请参阅