Skip to main content

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)

Source distribution for taskferry-dramatiq 0.2.0
File Size Uploaded
taskferry_dramatiq-0.2.0.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for taskferry-dramatiq 0.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.0 This release

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