0

リモート 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

これを解決する方法について何か考えはありますか? これは、要求が多すぎて速すぎた結果ですか? もしそうなら、グリーンレットの数を抑える簡単な方法はありますか?

4

1 に答える 1