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.