Python Tenacity の retry 関数 ― 2022年06月13日 13時23分13秒
データベースエラー等は書けるようになるか、何度か試したい。ネットワーク系のエラーも一度や二度接続に失敗しても、再接続したい場合などがある。
tenacity から import して使う。
retry で捕捉し、再試行を試みたい例外を並べている。wait で待ち時間を指定。stop で諦める閾値を設定。再試行が試されたのをログに出力。
from tenacity import *
@retry(
retry=retry_if_exception_type((IntegrityError, OperationalError)),
wait=wait_fixed(0.2) + wait_random(0, 2),
stop=(stop_after_delay(10) | stop_after_attempt(5)),
before_sleep=before_sleep_log(logger, logging.WARNING),
)
def write_to_database(sql)
pass
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2022/06/13/9499546/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。