import requests
from requests.adapters import HTTPAdapter
session = requests.Session()
session.mount('http://', HTTPAdapter(max_retries=3))
session.mount('https://', HTTPAdapter(max_retries=3))
session.get('http://example.com', timeout=5)
# 重试算法, _observed_erros就是第几次重试,每次失败这个值就+1.
# backoff_factor = 0.1, 重试的间隔为[0.1, 0.2, 0.4, 0.8, ..., BACKOFF_MAX(120)]
从源码得知,backoff_factor 是有自己的算法,所以不用重写 urllib3 的 Retry。
但如果需要设置 max_retries.respect_retry_after_header 那还是得重写,因为 max_retries 是有条件的,上面这句设置为False ,应该就是无条件重试了。
网友评论