Skip to main content

Dramatiq-pg

Dramatiq is a simple task queue implementation for Python3. dramatiq-pg provides a Postgres-based implementation of a dramatiq broker.

Features

  • Super simple deployment: Single table, no ORM.
  • Stores message payload and results as native JSONb.
  • Uses LISTEN/NOTIFY to keep worker sync. No polling.
  • Implements delayed task.
  • Reliable thanks to Postgres MVCC.
  • Self-healing: automatic purge of old messages. Automatic recovery after crash.
  • 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 psycopg2-binary
    
    Ensure you have either psycopg2 or psycopg2-binary installed.
  • Init database schema with init command.
    $ dramatiq-pg init
    
    Or adapt dramatiq-pg/schema.sql to your needs.
  • 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.

Integration

Django : Use django-dramatiq-pg by Curtis Maloney. It includes configuration, ORM model and database migration.

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.

Credit

Thanks to all contributors :

  • Andy Freeland
  • Curtis Maloney, Django support.
  • Federico Caselli, bugfixes.
  • Giuseppe Papallo, bugfixes.
  • Rafal Kwasny, improvements.

The logo is a creation of Damien CAZEILS

Metadata

Release files for dramatiq-pg 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dramatiq-pg 0.12.0
File Size Uploaded
dramatiq_pg-0.12.0.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dramatiq-pg 0.12.0
File Interpreter ABI Platform
dramatiq_pg-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.7 kB

Release files / dramatiq_pg-0.12.0.tar.gz

Download URL dramatiq_pg-0.12.0.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
828245fcf3700f6098ec1bff9eb13e50acff69d9c490ceeec5b69ee75d0f9fb1
BLAKE2b-256 checksum
How to use checksums
949885c41e5dce7aece26641b28d82fd306325c49f7a92f1ccce0866308462c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.1 Linux/6.1.0-22-amd64

Release files / dramatiq_pg-0.12.0-py3-none-any.whl

Download URL dramatiq_pg-0.12.0-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
808bbe854d1266922570bd5afeacac0ddb93f6a7dbf68624dde2f76d72d95b58
BLAKE2b-256 checksum
How to use checksums
02cc59114fca251d37c980b048bdb837fbdbf02ec8d2d64dd653c78628e6afd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.1 Linux/6.1.0-22-amd64

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page