我正在 python 3 中使用 requests 库,尽管我尽了最大努力,但以下警告仍然无法消失:
警告:requests.packages.urllib3.connectionpool:连接池已满,正在丢弃连接:myorganization.zendesk.com
我在多线程环境中使用请求来同时获取 json 文件并将其发布到单主机,绝对没有子域。在当前设置中,我仅使用 20 个线程。
我尝试使用Session
为了获得重用连接的请求,从而摆脱问题,但它没有奏效。这是我的类构造函数中的代码:
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 https://bugs.launchpad.net/python-swiftclient/+bug/1295812考虑到我正在使用的线程数,我不需要将池连接增加那么多,但尽管如此,即使增加 100,我也会收到此警告。
这让我认为连接根本没有被重用,或者如果有的话,由于某种原因创建了太多连接。我已经更新了请求,因此它是最新版本。
有谁有任何想法我可以如何摆脱这个?我正在调试一些代码,我认为这是某些请求未正确发出的原因。
Related:
我可以更改Python“请求”模块的连接池大小吗? https://stackoverflow.com/questions/18466079/can-i-change-the-connection-pool-size-for-pythons-requests-module