I've implemented a retry mechanism to requests session using urllib3.util.retry as suggested both here and here.
Now, I am trying to figure out what is the best way to add a callback function that will be called on every retry attempt.
To explain myself even more, if either the Retry object or the requests get method had a way to add a callback function, it would have been great. Maybe something like:
import requests
from requests.packages.urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
def retry_callback(url):
print url
s = requests.Session()
retries = Retry(total=5, status_forcelist=[ 500, 502, 503, 504 ])
s.mount('http://', HTTPAdapter(max_retries=retries))
url = 'http://httpstat.us/500'
s.get(url, callback=retry_callback, callback_params=[url])
I know that for printing url I can use the logging, but this is only a simple example for a more complex use.
Please excuse me if it's not the best python coding, but I hope it is clear enough.
Thanks.
from Adding callback function on each retry attempt using requests/urllib3
No comments:
Post a Comment