LoginSignup
1
3

More than 3 years have passed since last update.

Pythonでリトライ処理を実装した

Posted at

はじめに

APIの呼び出しにおいて、一時的あるい頻繁にエラーを返す場合などがあります。
そういった場合に、Exponential Backoff(指数関数的後退)と言った指数関数的にリトライ間隔を後退させるアルゴリズムが使われます。
つまり、2秒後、4秒後、8秒後、16秒後などのようにリトライ間隔を後退させて行きます。
最近、使ったとあるAPIが1回のリクエストで中々activeになってくれないという事象が発生したので、リトライ処理の実装を行いました。
そうようなリトライ処理をPythonではデコレータを用いて簡単に実装する事ができました。

環境

  • Python 3.6.5

ライブラリ

retry
https://pypi.org/project/retry/

実装

from retry import retry

@retry(tries=3, delay=2, backoff=2)
def zero_division():
    try:
        return 10 / 0
    except ZeroDivisionError as ex:
        print("error")
        raise

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3