Я пытаюсь распараллелить получение данных из удаленного API. У удаленного API нет возможностей для массовых операций, поэтому для каждого нужного мне объекта мне приходится делать отдельный запрос GET.
Я добавил gevent в смесь. Иногда это прекрасно работает, но если я снова попробую тот же набор запросов, 50 из 100 не будут работать с этим:
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
Любые мысли о способах решения этой проблемы? Является ли это результатом слишком большого количества запросов слишком быстро? Если да, то есть ли простой способ ограничить количество гринлетов?