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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file dramatiq-pg-0.2.0.tar.gz.

File metadata

  • Download URL: dramatiq-pg-0.2.0.tar.gz
  • Upload date:
  • Size: 4.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

Hashes for dramatiq-pg-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1b113ab456879b366738fdb2da4e952760311f060a4a165c6e76ce84013f0df8
MD5 ed793fcfcd2b37a5ff84f9bc11aa8657
BLAKE2b-256 d6064189420eb7048b72f10c89ebf881b586c020283784bf53a8f46a3f0a8299

See more details on using hashes here.

Provenance

File details

Details for the file dramatiq_pg-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dramatiq_pg-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 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

Hashes for dramatiq_pg-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e702a7abdd47eeaaffd680178acca3be348560d3fe2a8996f013cc9030d31e81
MD5 4e3edbe81d69a0a107cb1c35e4712d74
BLAKE2b-256 b5c744257d2b14f346be8252c1553b11556c584d948a4c17bba89f5e9ad7e39b

See more details on using hashes here.

Provenance

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