Postgres Broker for Dramatiq Task Queue
Project description
dramatiq-pg − Postgres Broker for Dramatiq
Dramatiq is a simple task queue implementation for Python3. dramatiq-pg provides a Postgres-based implementation of a dramatiq broker.
Features
- Super simple deployment.
- Uses plain psycopg2. No ORM.
- Stores message payload and results as native JSONb.
- Stores all messages in a single table, in a dedicated schema.
- Uses LISTEN/NOTIFY to keep worker sync. No polling.
- Requeue of failed tasks.
- Delayed task.
- Reliable thanks to Postgres MVCC.
- Self-healing. Old messages are purge from time to time.
- Utility CLI for maintainance : flush, purge, stats, etc.
Note that dramatiq assumes tasks are idempotent. This broker makes the same assumptions for recovering after a crash.
Installation
- Install dramatiq-pg package from PyPI:
$ pip install dramatiq-pg
- Apply dramatiq_pg/schema.sql file in your database:
$ psql -f dramatiq_pg/schema.sql
- Before importing actors, define global broker with a connection
pool:
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.
Support
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.
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
Built Distribution
File details
Details for the file dramatiq-pg-0.5.1.tar.gz
.
File metadata
- Download URL: dramatiq-pg-0.5.1.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.10 CPython/3.7.1 Linux/4.19.0-2-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8b80417f5e85a566f9b9f021522b236991092f1e05b1715283a34713902dc58 |
|
MD5 | 18ba844587c0704cc4ee3fd4e0689d13 |
|
BLAKE2b-256 | 39d21195c05d59caa5379efe0f4785db6c87ec7cf4c990fd9bb4826b447fd279 |
Provenance
File details
Details for the file dramatiq_pg-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: dramatiq_pg-0.5.1-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.10 CPython/3.7.1 Linux/4.19.0-2-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 087f765488460b43cb8e70db1cd8bff5c2a97e0efa7af873af17a88485e5ed5d |
|
MD5 | e5affe0bfe7924ca30ed46d49667cbb0 |
|
BLAKE2b-256 | 4281da8cf87c6c46feeaeec418d0e7b91f2e8567605a9ef3f1aa35814a511b5b |