Gmail APIを使用して、ユーザーの受信トレイ内のすべてのメールを取得しています。要求がメッセージの返答を返さなくなってから約1時間が経過するまで、すべて正常に動作します。Pythonエラー:接続が中止されました - ネットワークがダウンしました
私はメッセージヘッダを要求するためにこのコードを使用:
sess = requests.Session()
retries = Retry(total=5, connect=10, backoff_factor=0.1, status_forcelist=[401, 500, 502, 503, 504], raise_on_redirect=True, raise_on_status=True)
sess.mount('https://', HTTPAdapter(max_retries=retries))
try:
msg = json.loads(sess.get(message_url, params={'format': 'metadata'}, headers=authorization_header).text)
logger.info('msg', dict(msg=msg))
except requests.HTTPError as e:
logger.info('error', dict(
error=e,
error_code=e.code
))
except:
logger.info('Unknown error')
そして時間後、私はそうのようなエラーが発生します:
[2017-01-08 16:34:17,536: WARNING/PoolWorker-1]
Retrying (Retry(total=4, connect=10, read=None, redirect=None))
after connection broken by 'ProtocolError('Connection aborted.',
OSError(50, 'Network is down'))':
/gmail/v1/users/<user_id>/messages/<message_id>?format=metadata
私はので、問題に実行しているかもしれないと思いましたアクセストークンが期限切れになるので、リフレッシュトークンを使用して新しいアクセストークンを取得するスクリプトを作成しました。このプロセスはHTTPErrorを捕捉することも決してしませんが、代わりに 'Unknown error'を出力します。したがって、HTTPErrorが当てはまるとは思わないでしょう。
この問題へのアプローチ方法についてご意見はありますか? 「ネットワークがダウンしている」
connection broken by 'ProtocolError('Connection aborted.', OSError(50, 'Network is down'))':
不安定なインターネット接続とは何かを持っていることがあります。
私はPythonのリクエストライブラリのRetryクラスを使用してConnectionErrorを再試行していますので、まだ私はそれを得ています。 私は自分自身の再試行クラスを作成し、最大再試行しきい値を上げると思います。 – Aspen