我在python 3中使用了请求库,尽管我付出了最大的努力,但我无法获得以下警告消失:
警告: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 的建议,考虑到我使用的线程数量,我不应该通过那么多来增加池化连接,但尽管如此,我甚至在提高时也会收到此警告100。
这让我觉得连接根本没有被重用,或者如果它们是,那么由于某种原因创建的连接太多了。我已更新了请求,因此它是最新版本。
有没有人有任何想法我怎么能摆脱这个?我正在调试一些代码,我认为这是一些请求没有正确完成的责任。
相关:
Can I change the connection pool size for Python's "requests" module?
答案 0 :(得分:3)
由于zendesk通过https进行通信,您只需要将适配器安装到https协议,即
self.session.mount('https://', adapter)