2021年7月16日金曜日

Python の retry モジュールを使ってみる

Python の retry モジュールを使ってみる

概要

retry はデコレータで簡単にリトライ処理を追加することができる Python のモジュールです 簡単な使い方を紹介します

環境

  • macOS 11.4
  • Python 3.8.3
  • retry 0.9.2

インストール

  • pipenv install retry

サンプルコード

import os
import logging
from retry import retry

@retry(FileNotFoundError, tries=5, delay=10, logger=logging)
def exists_file():
    with open("/tmp/hoge") as f:
        print(f.readlines())

exists_file()

基本的な使い方は @retry デコレータを使います 引数に「捕捉するエラー」「リトライ回数」「待ち時間」を指定します これらが基本的な引数になります

リトライ中のログを出力する場合は logger 引数を指定します

backoff も指定されており一定間隔ではなくリトライするごとに待ち時間を多くすることもできます

基本的には関数のデコレータとして使うので特定の関数をリトライさせたい場合には便利かなと思います あとはエラーに対してリトライ処理を掛けるので関数内で意図的に raise する必要が出てくることもあります

0 件のコメント:

コメントを投稿