Configures the passed-in requests' Session
to retry on failed requests due to connection errors, timeouts,
specific HTTP response codes (5XX by default) and 30X redirections
—anything that could fail.
Python 3.6+.
Basic usage:
from retry_requests import retry
my_session = retry()
my_session.get("http://foo.bar")This get will retry three times in case of error waiting some time between retries.
Errors could be:
- Waiting for the server to start answering for 5 seconds.
- No access to the server or a dropped connection.
- An HTTP answer of 500, 502, or 504.
You can change these defaults:
from retry_requests import retry
from requests import Session
my_session = retry(Session(), retries=5, backoff_factor=0.2)
my_session.get('https://foo.bar')Check the function retry to know more about this configuration.
Note that you have a TSession, a Session with a default timeout,
and RSession, a Session with a timeout that always raise_for_status(),
for your convenience.
Heavily inspired from Peterbe.com. Thank you!
Just pip install retry-requests.
Clone this project and then, at its root directory, run python setup.py test.
Note that you need an active Internet connection to run the tests.