stamina 生产级的python 重试包
stamina 是基于tenacity的包装
包含的特性
- 仅对某些异常(甚至是其中的子集)进行重试,方法是先使用谓词进行自检
- 重试之间带有抖动的指数退避
- 限制重试次数和总时间
- 自动异步支持-包括Trio
- 保留所装饰的可调用函数的类型提示
- 开箱即用,可灵活使用Prometheus、structlog和标准库的支持logging
- 专门的测试支持允许全局停用重试,或限制重试次数并删除退避
说明
tenacity 是一个不错的选择同时也很强大,但是使用不好也是会有影响的,stamina 提供了对于重试的一些最佳实践,很值得使用,同时官方文档也比较全,值得学习下
参考资料
https://github.com/hynek/stamina
https://stamina.hynek.me/en/stable/
https://tenacity.readthedocs.io/en/latest/
https://stamina.hynek.me/en/stable/motivation.html