Skip to content

Make requests's sessions auto-retry on failure.

License

Notifications You must be signed in to change notification settings

bustawin/retry-requests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retry-requests

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!

Installing

Just pip install retry-requests.

Testing

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.

About

Make requests's sessions auto-retry on failure.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages