• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

python retry

date: 2023-12-30 excerpt: python retryの使い方

tag: pythonretry


python retryの使い方

概要

  • 関数の実行をリトライするデコレータ
  • 例外が発生した場合にリトライする
  • オプション
    • tries: リトライ回数
    • delay: リトライ間隔
    • jitter: リトライ間隔のランダム要素

インストール

$ pip install retry

使い方

基本的な使い方

from retry import retry

@retry(tries=3, delay=2, jitter=(0, 9))
def test_function():
    # ここにリトライしたい処理を書く
    print("関数を実行")
    raise ValueError("エラー発生")

try:
    test_function()
except Exception as e:
    print("最終的な失敗:", e)

リトライする例外を指定する

from retry import retry

@retry(tries=3, delay=2, exceptions=ValueError)
def function_that_raises_value_error():
    raise ValueError("This is a ValueError")

バックオフ戦略を使用

from retry import retry

# 最初のリトライは2秒後に実行され、二回目は4秒、三回目は8秒後に実行される
@retry(tries=3, delay=2, backoff=2)
def function_that_raises_value_error():
    raise ValueError("This is a ValueError")

最大遅延時間を設定

from retry import retry

# 最大遅延時間を10秒に設定
@retry(tries=3, delay=2, backoff=2, max_delay=10)
def function_that_raises_value_error():
    raise ValueError("This is a ValueError")

リトライの状況をログに記録

from retry import retry
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

@retry(tries=3, delay=2, logger=logger)
def function_with_logging():
    # 何らかの処理
    pass


pythonretry Share Tweet