Skip to main content

Handy decorator to set retry policies for async callables with some useful features

Project description

aioretry

Handy decorator to set retry policies for async callables with some useful features

Usage examples

@retry(
    tries=5,
    allowed_exceptions=(RuntimeError,),
    intervals=(5, 7, 10),
    fail_cb=make_request_callback,
)
async def make_request(address, client):

    ... http request code goes here...

    if response.status_code >= 300:
        raise RuntimeError()

def make_request_callback(address, client)
    ...
  • 5 retries will be performed
  • with 5, 7, 10, 10 and 10 seconds interval between retries. I.e. if intervals tuple length more than tries number, the last tuple interval will be used for the rest of the tries.
  • make_request_callback() synchronous function will be called if all attempts are failed
  • The accepted exceptions tuple allows you to control when to retry.
  • You can optionally pass a custom logger: logging.Logger to the decorator within a logger= parameter. Otherwise retry_decorator logger will be created to log retries.

Other possible ways to use this decorator:

@retry(5, (MyCustomError,), (5, 7, 10), make_request_callback)

@retry(3, (MyCustomError,), (1,))

# this actually will either successfully return or fail on first exception occured
@retry(3)

Look into tests.py to see more on usage.

Installation

Available as a package on pypi:

pip install aioretry-decorator

Or install it directly from GitHub:

pip install git+https://github.com/remort/aioretry.git#egg=aioretry_decorator

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioretry_decorator-1.0.6.tar.gz (2.8 kB view details)

Uploaded Source

File details

Details for the file aioretry_decorator-1.0.6.tar.gz.

File metadata

  • Download URL: aioretry_decorator-1.0.6.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.9

File hashes

Hashes for aioretry_decorator-1.0.6.tar.gz
Algorithm Hash digest
SHA256 d0d150dd6fe42a5758f0b5778f7b8316eb1e08b4da76e8b42f3cf6f3d9a97fdc
MD5 59c44a1069403c481a592853398826da
BLAKE2b-256 61790fcb5acc69079e464daf606dfe69a952623d8d48ea28bef98ed42f2450a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page