我正在尝试并行化从远程 API 检索数据。远程 API 没有任何批量功能,因此对于我需要的每个对象,我必须发出单独的 GET 请求。
我已将 gevent 添加到组合中。有时效果很好,但如果我再次尝试相同的请求集,100 个请求中的 50 个将失败:
Traceback (most recent call last):
...
File "/Users/---/venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1570, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/Users/---/venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1317, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/Users/---/venv/lib/python2.7/site-packages/httplib2/__init__.py", line 1258, in _conn_request
raise ServerNotFoundError("Unable to find the server at %s" % conn.host)
ServerNotFoundError: Unable to find the server at my.remote.host
<Greenlet at 0x10c6eacd0: function_name(<Object1>, <Object2>, u'zebra', True)> failed with ServerNotFoundError
有关解决此问题的方法的任何想法?这是因为太多请求太快的结果吗?如果是这样,有没有一种简单的方法来限制绿叶的数量?