Has*_*bir 8 python urllib3 python-requests
我使用以下代码在 python 请求中实现重试机制。
from requests import Session
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
s = Session()
retries = Retry(total=5,
raise_on_redirect=True,
raise_on_status=True,
backoff_factor=1,
status_forcelist=[ 500, 502, 503, 504 ])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
response=s.get('https://example.com')
Run Code Online (Sandbox Code Playgroud)
它工作得很好,然而这一切都悄无声息地发生。我想要的是每当进行重试尝试时都得到通知,如果可能的话,为什么会发生重试。我希望每次重试都有这样的事情。
print(Exception.__class__)
print('Retrying after' + x + 'seconds')
Run Code Online (Sandbox Code Playgroud)
是否可以?
ram*_*esh 13
你可以编写自己的类来添加日志,它应该继承自Retry。
class LogRetry(Retry):
"""
Adding extra logs before making a retry request
"""
def __init__(self, *args, **kwargs):
logger.info(f'<add your logs here>')
super().__init__(*args, **kwargs)
retries = LogRetry(<your args>)
Run Code Online (Sandbox Code Playgroud)