Task Queues in Python

5 projects in DevOps. Most starred: celery, rq and huey.

Celery is the most complete Python task queue: several brokers (RabbitMQ, Redis, Amazon SQS), periodic tasks through Celery beat, retries, rate limits and workflow primitives such as chains and chords. That breadth comes with more configuration and more ways to go wrong. RQ uses Redis only and keeps the model simple: enqueue a function call, run workers, inspect jobs. Dramatiq aims for Celery's reliability with a smaller API, works with RabbitMQ or Redis and retries failed tasks by default.

Huey is a small queue that runs on Redis, SQLite or in memory, with periodic tasks built in, a good fit for small apps. Taskiq is asyncio-native, so tasks can be async functions, and it integrates well with FastAPI and other async frameworks. Whichever you choose, write tasks to be idempotent, because most queues deliver at least once and a task can run again after a worker crash.

celery

An asynchronous task queue/job queue based on distributed message passing.

29.1kupdated today5.7.0rc1

rq

Simple job queues for Python.

10.7kupdated today2.12

dramatiq

A fast and reliable background task processing library for Python 3.

5.3kupdated 9d ago2.2.1

huey

A little task queue with multi-process, multi-thread, or greenlet workers.

6.1kupdated today3.5.3

taskiq

Distributed task queue with native asyncio support and pluggable brokers.

2.4kupdated 12d ago0.13.0
Esc

Type to search every entry. ↑↓ to move, Enter to open.