介绍

tenacity is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything. It originates from a fork of retrying which is sadly no longer maintained. Tenacity isn’t api compatible with retrying but adds significant new functionality and fixes a number of longstanding bugs.

安装

pip install tenacity

 

文档:

https://tenacity.readthedocs.io/en/latest/

 

demo:

In [13]: import random
    ...: from tenacity import retry
    ...:
    ...: @retry
    ...: def do_something_unreliable():
    ...:     value = random.randint(0,10)
    ...:     if value > 1:
    ...:         raise IOError("Broken sauce, everything is hosed!!!111one")
    ...:     else:
    ...:         print(value)
    ...:         return "Awesome sauce!"
    ...:
    ...: print(do_something_unreliable())
1
Awesome sauce!

In [14]: import random
    ...: from tenacity import retry
    ...:
    ...: @retry
    ...: def do_something_unreliable():
    ...:     value = random.randint(0,10)
    ...:     if value > 1:
    ...:         raise IOError("Broken sauce, everything is hosed!!!111one")
    ...:     else:
    ...:         print(value)
    ...:         return "Awesome sauce!"
    ...:
    ...: print(do_something_unreliable())
1
Awesome sauce!

In [15]: import random
    ...: from tenacity import retry
    ...:
    ...: @retry
    ...: def do_something_unreliable():
    ...:     value = random.randint(0,10)
    ...:     if value > 1:
    ...:         raise IOError("Broken sauce, everything is hosed!!!111one")
    ...:     else:
    ...:         print(value)
    ...:         return "Awesome sauce!"
    ...:
    ...: print(do_something_unreliable())
0
Awesome sauce!

In [16]: import random
    ...: from tenacity import retry
    ...:
    ...: @retry
    ...: def do_something_unreliable():
    ...:     value = random.randint(0,10)
    ...:     if value > 1:
    ...:         raise IOError("Broken sauce, everything is hosed!!!111one")
    ...:     else:
    ...:         print(value)
    ...:         return "Awesome sauce!"
    ...:
    ...: print(do_something_unreliable())
1
Awesome sauce!

 

源代码:

https://github.com/jd/tenacity

类似库:retry

pip install retry

自己可以参考retry源代码自己实现

requests多次尝试实现:

https://www.cnblogs.com/eshizhan/p/5072626.html

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2022-01-24
  • 2021-07-26
  • 2022-01-11
猜你喜欢
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-02-21
  • 2021-10-28
  • 2022-02-27
相关资源
相似解决方案