Integration of Django with dramatiq-pg
Project description
dramatiq-pg integration for django.
Installation
Install with pip
$ pip install django-dramatiq-pg
Add to your INSTALLED_APPS list in settings.py
INSTALLED_APPS = [ ... 'django_dramatiq_pg', ]
Create a Registry, and register your tasks
from django_dramatiq_pg.registry import Registry tasks = Registry() @tasks.actor def mytask(): ...
Configure
DRAMATIQ_BROKER = { "OPTIONS": { "url": "postgres:///mydb", }, "MIDDLEWARE": [ "dramatiq.middleware.TimeLimit", "dramatiq.middleware.Callbacks", "dramatiq.middleware.Retries", ], } DRAMATIQ_REGISTRY = 'myapp.registry.tasks'
Start the worker process:
$ dramatiq django_dramatiq_pg.worker
This worker module will auto-discover any module called ‘actors’ in INSTALLED_APPS.
Registry
In a typical dramatiq application, the Broker is configured before any tasks are registered. However, as Django is in control of the intialisation sequence, there is an issue of ordering; the actor decorator assumes the broker is already configured.
To resolve this, django_dramatiq_pg provides a Registry for your tasks, which is then bound to the Broker when Django initialises.
In your code, declare a Registry instance, and use its .actor method to decorate your task functions. Then tell django_dramatiq_pg to use your registry with the DRAMATIQ_REGISTRY setting.
If you do not specify one, django_dramatiq_pg will create one on start.
The registry can be accessed as the .registry attribute on the django_dramatiq_pg App instance.
Settings
- DRAMATIQ_BROKER
A dict of options to pass when instantiating the broker.
- DRAMATIC_BROKER[‘OPTIONS’]
Arguments to pass to the Broker.
- DRAMATIC_BROKER[‘MIDDLEWARE’]
A list of middleware classes to be passed to the broker.
These can either be import strings, or instances.
- DRAMATIQ_ENCODER
Default: None
Import path for encoder class.
- DRAMATIQ_ACTORS_MODULE
Default: ‘actors’
Name of module use to auto-discover actors in INSTALLED_APPS.
DRAMATIQ_REGISTRY
Import path for the task Registry instance.
This should refer to an instance of django_dramatiq_pg.registry.Registry.
This resolves the chicken/egg problem of declaring tasks before the broker is configured.
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
Hashes for django_dramatiq_pg-1.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9cc3c48bc5ba18d6a1bc03fb5af44456349ba22b89df14f97e64ae0719dbb4e |
|
MD5 | c5323f1cc800f960f43071ea2e1c7f0e |
|
BLAKE2b-256 | 3bfce5d33d10fcb275fce084d6d859aee1d202265d88052210b672c8ba86c655 |