2

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

ConnectionError: HTTPConnectionPool(host='xxx.net', port=80): Max retries exceeded with url: /thing/subthing/ (原因:[Errno 10055] 无法对套接字执行操作,因为系统缺少足够的缓冲区空间或因为队列已满)

我可以做些什么来增加缓冲区和队列空间,或者让请求模块等待可用的插槽?

(我知道我可以把它塞进一个“尝试”循环中,但这似乎很笨拙)

4

1 回答 1

3

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

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

于 2013-07-10T13:56:28.113 回答