Skip to main content

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.

The project is not feature complete yet.

Features

  • Super simple deployment.
  • Message payload stored as native JSONb.
  • All messages in a single table.
  • All data are wrapped in a dedicated schema.
  • Uses LISTEN/NOTIFY to keep worker sync. No polling.
  • Reliable thanks to Postgres MVCC.
  • Using plain psycopg2. No ORM.
  • Requeueing of failed tasks.

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 dramatiq_pg
    import psycopg2.pool
    
    pool = psycopg2.pool.ThreadedConnectionPool(0, 4, conninfo)
    dramatiq.set_broker(dramatiq_pg.PostgresBroker(pool=pool))
    

Now declare/import actors and manage worker just like any dramatiq setup.

Roadmap

  • Rejecting message.
  • Process missed notifies while resuming worker.
  • Result storage as JSONb.
  • Delayed task.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dramatiq-pg-0.2.0.tar.gz (4.0 kB view hashes)

Uploaded Source

Built Distribution

dramatiq_pg-0.2.0-py3-none-any.whl (7.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page