Postgres Broker for Dramatiq Task Queue.
MIT-MODERN-VARIANT License
Dramatiq is a simple task queue implementation for Python3. dramatiq-pg provides a Postgres-based implementation of a dramatiq broker.
Note that dramatiq assumes tasks are idempotent. This broker makes the same assumptions for recovering after a crash.
$ pip install dramatiq-pg psycopg2-binary
Ensure you have either psycopg2 or psycopg2-binary installed.init
command.
$ dramatiq-pg init
Or adapt dramatiq-pg/schema.sql
to your needs.import dramatiq
import psycopg2.pool
from dramatiq_pg import PostgresBroker
dramatiq.set_broker(PostgresBroker(i))
@dramatiq.actor
def myactor():
...
Now declare/import actors and manage worker just like any dramatiq setup. An example script is available, tested on CI.
The CLI tool dramatiq-pg
allows you to requeue messages, purge old messages
and show stats on the queue. See --help
for details.
Dramatiq-pg documentation is hosted on GitLab and give you more details on deployment and operation of Postgres as a Dramatiq broker.
Django : Use django-dramatiq-pg by Curtis Maloney. It includes configuration, ORM model and database migration.
If you encounter a bug or miss a feature, please open an issue on GitLab with as much information as possible.
dramatiq_pg is available under the PostgreSQL licence.
Thanks to all contributors :
The logo is a creation of Damien CAZEILS