RQ Retry and Scheduler
Project description
RQ Retry Scheduler
RQ Retry Scheduler extends the RQ worker class to provide functionality to enqueue jobs based on time.
Additionally, it provides a worker that will automatically retry failed jobs using a backoff scheme.
Usage
Queues
The rq_retry_scheduler.Queue class can be used as a drop in replacement for rq.Queue. It provides two additional enqueuing methods:
enqueue_at - Enqueue the job at the specified time. The time should be a datetime.datetime object with the UTC timezone.
enqueue_in - Enqueue the job after the specified amount of time. The time should be a datetime.timedelta object.
Additionally, two other methods are available enqueue_job_at and enqueue_job_in which work like the above methods but take a rq.Job object as the paramter.
Scheduler
In order to move jobs from the schedule queue into the proper RQ queue a scheduler needs to be ran. This can be accomplished via the rqscheduler script. Additionally, you can extend from rq_retry_scheduler.Scheduler to customize the functonality.
Worker
A worker is provided that will requeue jobs that fail using a defiend backoff strategy. The worker is designed to use the functionality from the Queue class to control the backoff.
The worker can be used by using the -w option to rq worker: rq worker -w 'rq_rety_scheduler.Worker.
The backoff times and total attempts is controlled by Worker.retry_delays.
Installation
Install via pip
pip install rq-retry-scheduler
Acknowledgements
This package was based heavily on the work of RQ Scheduler.
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
Hashes for rq-retry-scheduler-0.1.0b2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0124ac8173d48a29ad22833651be6628faac8f93c6374c8625e66abf900d45c2 |
|
MD5 | e016d08dd50fc3d36bf20822ca7dc7b8 |
|
BLAKE2b-256 | 016b8d42d518d0c5c85b16560b35a39b575babb0e4bc39377bfaf0a84f991c11 |