Overview
Celery is a distributed task queue for Python, maintained by a volunteer community for well over a decade. Your application sends task messages to a broker; worker processes consume them and optionally store results in a result backend such as Redis, a SQL database via SQLAlchemy or the Django ORM, or cloud storage. RabbitMQ and Redis are the feature-complete brokers; SQS and others are also supported.
Beyond basic tasks it offers automatic retries, per-task time limits and rate limits, periodic tasks through Celery Beat with interval or crontab schedules, and the canvas primitives (group, chain, chord, chunks) for composing workflows. Workers can use prefork processes, threads, eventlet or gevent, and emit monitoring events used by tools such as Flower.
Its flexibility is also its main cost: configuration has many options, behaviour differs by broker, and the maintainers state they do not support Windows. There is no paid edition; commercial support is available through Tidelift.
Pricing and plans
| Plan | Price | What you get |
|---|---|---|
| Celery | Free | Open source; commercial support available through a Tidelift subscription |
What it does
- Multiple brokers
- RabbitMQ and Redis are feature complete; Amazon SQS and experimental transports such as SQLite for local development are available.
- Periodic tasks
- Celery Beat schedules tasks by interval or crontab expressions.
- Canvas workflows
- Compose tasks with groups, chains, chords and chunks.
- Time and rate limits
- Limit task execution per second, minute or hour and cap run time per task or worker.
- Result backends
- Store results in Redis, SQL databases, Django ORM, MongoDB, DynamoDB, S3 and others.
- Monitoring events
- Workers emit real-time events used by built-in and external monitoring tools.
Strengths and limitations
Strengths
- Free, mature and widely documented
- Deep Django integration and ecosystem
- Works with RabbitMQ, Redis or SQS
- Handles very high throughput with tuned settings
Limitations
- Windows is not supported by the maintainers
- Many configuration options and broker-specific behaviour to learn
- No durable step-level state; long workflows must be built from canvas primitives
- Maintained by a community with minimal funding
Who it suits
Good for
- Django and Flask apps needing background tasks
- Python data processing distributed across machines
- Teams already operating RabbitMQ or Redis
Look elsewhere if
- Serverless Python apps with no worker process
- Teams wanting a hosted dashboard and durable workflows out of the box
Alternatives to Celery
| Tool | From | Free option | Stages |
|---|---|---|---|
| Oban SQL-backed job processing library for Elixir (and Python) | $135/mo | ||
| Hangfire Background job library for .NET | $500/yr | ||
| DBOS Postgres-backed durable workflow library | $99/mo | ||
| Sidekiq Redis-based background job library for Ruby | $99/mo | ||
| Google Cloud Tasks Managed task queue with HTTP push delivery | Usage-based | Free tier | |
| Windmill Open-source job orchestrator, workflow engine and internal-tool platform | $10/mo | Free tier |
Questions
Is Celery free?
Yes. Celery is open source with no paid edition; you pay only for your broker and worker servers.
What broker should I use with Celery?
RabbitMQ and Redis are the feature-complete brokers; Amazon SQS is also supported.
Can Celery run scheduled tasks?
Yes. Celery Beat runs periodic tasks on intervals or crontab schedules.
Does Celery work on Windows?
The maintainers state that Windows is not supported.
Sources read for this page