我希望避免超越http连接池

时间:2013-07-10 13:34:37

标签: python python-requests python-multithreading

我正在创建一个可以同时运行RESTful API的工具。我正在使用python“请求”模块和“线程”模块。一旦我在系统上堆叠了太多的同时获取,我就会遇到这样的异常:

ConnectionError:HTTPConnectionPool(host ='xxx.net',port = 80):使用url超出最大重试次数:/ thing / subthing /(由以下引起:[Errno 10055]无法执行对套接字的操作,因为系统缺少足够的缓冲区空间或因为队列已满;

如何增加缓冲区和队列空间,或者要求Requests模块等待可用的插槽?

(我知道我可以在“尝试”循环中填充它,但这看起来很笨拙)

1 个答案:

答案 0 :(得分:3)

使用session。如果您使用requests.request系列方法(get,post,...),每个请求将使用它自己的会话与它自己的连接池,因此不会使用任何连接池。

如果您需要微调会话中使用的连接数,可以通过更改HTTPAdapter

来完成此操作