适用场景
- web接口测试
- 爬虫
官方文档:https://tenacity.readthedocs.io/en/latest/index.html
功能使用说明
tenacity
的错误重试核心功能是由其retry
装饰器来实现的
默认retry
不给参数时,将会不停地重试下去, 这也不符合需求的.
设置最大重试次数
retry(stop=stop_after_attempt(3))
将在尝试3次后,于第4次抛出异常.
设置重试最大超时时长
retry(stop=stop_after_delay(5))
,整个重试的超时时长超于5秒, 将停止重试.
组合重试条件
retry(stop=(stop_after_delay(5) | stop_after_attempt(3)))
将在重试总时长超过5秒后, 或者 重试3次后, 停止重试
设置相邻两次重试的时间间隔
有两种方式:
- 设置固定的时间间隔
retry(wait=wait_fixed(1), stop=stop_after_attempt(3))
重试3次, 每次重试间隔1秒
- 设置随机的时间间隔
retry(wait=wait_random(min=1, max=3), stop=stop_after_attempt(3))
重试3次, 每次重试间隔1到3秒