dramatiq task queue is great but lacks a scheduler. This project fills the gap.
- Cron-like scheduling.
- Single process.
- Fast and simple implementation.
- Easy on resources using SIGALRM.
- No dependencies except dramatiq ones.
- CLI consistent with dramatiq.
- Skip outdated message.
periodiq is licensed under LGPL 3.0+. Please see COPYING and COPYING.LESSER for licensing details.
$ pip install periodiq
Declare periodic tasks like this:
# filename: app.py
import dramatiq
from periodiq import PeriodiqMiddleware, cron
broker.add_middleware(PeriodiqMiddleware(skip_delay=30))
@dramatiq.actor(periodic=cron('0 * * * *'))
def hourly():
# Do something each hour…
...
Then, run scheduler with:
$ periodiq -v app
[INFO] Starting Periodiq, a simple scheduler for Dramatiq.
[INFO] Registered periodic actors:
[INFO]
[INFO] m h dom mon dow module:actor@queue
[INFO] ------------------------ ------------------
[INFO] 0 * * * * app:hourly@default
[INFO]
...
If you need help or found a bug, consider opening a GitLab issue on the project. French and English spoken.