Python 请求,警告:urllib3.connectionpool:连接池已满
Python Requests, warning: urllib3.connectionpool:Connection pool is full
我在 python 3 中使用请求库,尽管我尽了最大的努力,但我无法让以下警告消失:
WARNING:requests.packages.urllib3.connectionpool:Connection pool is full, discarding connection: myorganization.zendesk.com
我在多线程环境中使用请求来获取 post json 文件并发到 单个主机 ,绝对没有子域。在当前的设置中,我只使用了 20 个线程。
我试图使用 Session
来获取重用连接的请求,从而解决问题,但没有奏效。这是我的 class 构造函数中的代码:
self.session = requests.Session()
adapter = requests.adapters.HTTPAdapter(
pool_connections=100, pool_maxsize=100)
self.session.mount('http://', adapter)
self.session.headers.update({'Connection':'Keep-Alive'})
self.session.auth = (self._user+"/token", self._token)
根据 here 的建议,考虑到我正在使用的线程数,我不需要将池连接增加那么多,但尽管如此,即使增加 100 个,我也会收到此警告。
这让我觉得连接根本没有被重用,或者如果它们被重用,由于某种原因正在创建太多连接。我已经更新了请求,所以它是最新版本。
有没有人知道我该如何摆脱它?我正在调试一些代码,我认为这是某些请求未正确发出的原因。
相关:
Can I change the connection pool size for Python's "requests" module?
由于zendesk是通过https进行通信的,所以你只需要将adapter挂载到https协议即可,即
self.session.mount('https://', adapter)
我在 python 3 中使用请求库,尽管我尽了最大的努力,但我无法让以下警告消失:
WARNING:requests.packages.urllib3.connectionpool:Connection pool is full, discarding connection: myorganization.zendesk.com
我在多线程环境中使用请求来获取 post json 文件并发到 单个主机 ,绝对没有子域。在当前的设置中,我只使用了 20 个线程。
我试图使用 Session
来获取重用连接的请求,从而解决问题,但没有奏效。这是我的 class 构造函数中的代码:
self.session = requests.Session()
adapter = requests.adapters.HTTPAdapter(
pool_connections=100, pool_maxsize=100)
self.session.mount('http://', adapter)
self.session.headers.update({'Connection':'Keep-Alive'})
self.session.auth = (self._user+"/token", self._token)
根据 here 的建议,考虑到我正在使用的线程数,我不需要将池连接增加那么多,但尽管如此,即使增加 100 个,我也会收到此警告。
这让我觉得连接根本没有被重用,或者如果它们被重用,由于某种原因正在创建太多连接。我已经更新了请求,所以它是最新版本。
有没有人知道我该如何摆脱它?我正在调试一些代码,我认为这是某些请求未正确发出的原因。
相关:
Can I change the connection pool size for Python's "requests" module?
由于zendesk是通过https进行通信的,所以你只需要将adapter挂载到https协议即可,即
self.session.mount('https://', adapter)