Skip to content

vedarthk/async_runner

Repository files navigation

Async Runner

Documentation Status

Async runner is a thin wrapper over Celery API. This will enable control over failed messages by moving them to separate queue (generally queue_name_error) and also allows to retry the task with the help of retry policy.

More can be found at documentation: https://async_runner.readthedocs.org

from async_runner import async_runner
async_runner.send_task(
    task_fn=func,  # task function can be python module path
    queue='queue_name',  # name of the queue
    args=(arg1, arg2, arg3, ),  # tuple/list of positional arguments to task function
    kwargs={'name': 'parameter'},  # dictionary with key word arguments to task function
    options={
        'max_retries': 3,  # maximum number of times the task is retried
        'retry_policy': {
            'retry_interval': 12  # interval between retires (in seconds)
        }
    }
)

TODO: Decouple from Django