Dramatiq
Fast and reliable distributed task processing library for Python, with RabbitMQ and Redis support and retries built in
Visit Dramatiq →Dramatiq is a background task processing library for Python that focuses on simplicity, reliability and performance. You decorate a function with @dramatiq.actor, call .send() to queue it, and a separate worker process runs it. It works with RabbitMQ or Redis out of the box.
Reliability is built in rather than bolted on: failed messages are retried automatically with exponential backoff, with time limits and message age limits available per actor, and messages that keep failing end up in a dead-letter queue you can inspect. Async functions work as actors once you enable its optional AsyncIO middleware. Dramatiq is licensed under the LGPL and officially supports Python 3.10 and later.
See Celery vs RQ vs Dramatiq for how it compares with the other two main options.