taskferry-dramatiq
Run Taskferry tasks on Dramatiq — Redis or RabbitMQ, with real worker processes.
flowchart LR
APP["Application"] --> TP["Taskferry"] --> AD["taskferry-dramatiq"] --> DQ["Dramatiq"] --> B["Redis / RabbitMQ"] --> W["dramatiq worker"]
pip install 'taskferry-dramatiq[redis]'
Dramatiq is the Redis-shaped counterpart to Procrastinate's PostgreSQL: a real broker, real workers, native retries with exponential backoff and jitter, and a dead-letter queue. Taskferry reimplements none of it.
Sending
runtime = Taskferry.from_mapping(
{
"backends": {"dq": {"factory": "dramatiq", "actor": "myapp.worker:taskferry_execute"}},
"defaults": {"task": "dq"},
}
)
runtime.tasks.submit("myapp.tasks:send_email", 42, queue="email")
Executing
Build the dispatch actor once, in the module your worker loads:
# myapp/worker.py
import dramatiq
from dramatiq.brokers.redis import RedisBroker
from taskferry import FunctionRegistry
from taskferry_dramatiq import build_dispatch_actor
dramatiq.set_broker(RedisBroker(url="redis://localhost:6379"))
taskferry_execute = build_dispatch_actor(
registry=FunctionRegistry(allowed_modules=["myapp"]), # task names come off the broker
max_retries=3,
)
dramatiq myapp.worker
Taskferry supplies no worker. dramatiq is the worker, and it is a good one.
Capabilities, next to Procrastinate
| Procrastinate | Dramatiq | |
|---|---|---|
SUBMIT |
yes | yes |
DELAY |
yes | yes |
RETRY |
yes | yes |
PRIORITY |
yes | no |
DEDUPLICATION |
yes | no |
STATE |
yes | no |
CANCEL |
yes | no |
RESULT |
no | no |
Dramatiq's default brokers keep no queryable record of one message, so there is
nothing to look up and nothing to revoke. A handle refuses status() rather than
returning a plausible UNKNOWN forever.
Dramatiq does offer a results middleware. RESULT is still not advertised,
because whether it works depends on middleware Taskferry cannot see from here —
and a capability that is true only sometimes is worse than one honestly absent.
License
Apache-2.0.
Release files for taskferry-dramatiq 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| taskferry_dramatiq-0.2.0.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| taskferry_dramatiq-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.9 kB
Release files / taskferry_dramatiq-0.2.0.tar.gz
| Download URL | taskferry_dramatiq-0.2.0.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46fd2f3639eac3f6bca0e0c6f20c4e63528c6babcb2466aa9d1415ba7c510e32
|
|
BLAKE2b-256 checksum How to use checksums |
c4b2d16e24f0d79c2d211587b7550676ad33fbd816c970b01ecb3bad9264c049
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / taskferry_dramatiq-0.2.0-py3-none-any.whl
| Download URL | taskferry_dramatiq-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88c2ca33afbd966891dc6812b4220cd2792d779d22b2115b35060a97bdd12a63
|
|
BLAKE2b-256 checksum How to use checksums |
2fc1498d55fa5e9c0dd4c02788181ca83398b09fc3e1ad53e1c631037e9061ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log