Decorator-based exponential backoff
Project description
Python Backoff Decorator
========================
This package implements exponential backoff as a decorator. Backoff is
triggered by an exception and is reset when the call is successful.
Usage
-----
Apply exponential backoff to any function or method by simply adding the
decorator:
```python
import backoff
import requests
@backoff.Backoff()
def send_data(data):
requests.post('https://example.com/data', data={'data': data})
try:
send_data('foo')
except:
# do something with data that wasn't posted
```
In the example above calls to `send_data()` will exponentially backoff when
POST is not successful.
Calls During Backoff Period
---------------------------
Any calls made during the backoff period will raise an `InBackoff` exception.
Setting Maximum Backoff
-----------------------
By default the maximum backoff is 1 hour. The `max_backoff` argument can be
passed to change the default; the following will only backoff for 5 minutes:
```python
@backoff.Backoff(max_backoff=300)
def send_data(data):
requests.post('https://example.com/data', data={'data': data})
```
========================
This package implements exponential backoff as a decorator. Backoff is
triggered by an exception and is reset when the call is successful.
Usage
-----
Apply exponential backoff to any function or method by simply adding the
decorator:
```python
import backoff
import requests
@backoff.Backoff()
def send_data(data):
requests.post('https://example.com/data', data={'data': data})
try:
send_data('foo')
except:
# do something with data that wasn't posted
```
In the example above calls to `send_data()` will exponentially backoff when
POST is not successful.
Calls During Backoff Period
---------------------------
Any calls made during the backoff period will raise an `InBackoff` exception.
Setting Maximum Backoff
-----------------------
By default the maximum backoff is 1 hour. The `max_backoff` argument can be
passed to change the default; the following will only backoff for 5 minutes:
```python
@backoff.Backoff(max_backoff=300)
def send_data(data):
requests.post('https://example.com/data', data={'data': data})
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
exbackoff-1.1.2.tar.gz
(2.6 kB
view details)
File details
Details for the file exbackoff-1.1.2.tar.gz
.
File metadata
- Download URL: exbackoff-1.1.2.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ba441ad8a56fb47afdb718430e31485c35a329cd02513bd1dfdc12e698be8a4 |
|
MD5 | 63d1013bcbe98c478a25e8fba043a058 |
|
BLAKE2b-256 | 14d3709397b8e4e6d866506bd9154d17f11a3ed47b4ce5f5255e95594841d33a |