On this page
Overview
Celery is a distributed task queue for Python. Producers send task messages through a broker and independent workers process them asynchronously, with configurable transports, concurrency pools, result backends, and scheduling.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Deliver tasks through a broker and separate processing from the application process
A Celery application registers tasks and sends them through transports such as RabbitMQ, Redis, Amazon SQS, and Google Pub/Sub. Workers and clients include retry behavior for connection failures and can distribute processing across multiple worker processes.
Sources: [2]
Choose concurrency, result storage, and scheduling for the workload
Celery supports prefork, Eventlet, gevent, and solo concurrency modes, while result backends include Redis, SQLAlchemy, Django ORM, Elasticsearch, and others. Scheduled tasks can be coordinated with the scheduler.
Sources: [2]
Best fit
Fits Python backends that need heavy work removed from the request path
It is useful for email delivery, image processing, external API work, batch jobs, and other tasks that should be queued, retried, and scaled independently of the web request/response process.
Sources: [2]
Before adoption
Celery 5.6.3 requires Python 3.9+; design broker, result backend, and worker pool together
Celery 5.6.3 requires Python 3.9 or newer. Delivery semantics, retries, acknowledgements, result persistence, and concurrency behavior depend on the selected broker, backend, and worker pool, so deployment configuration must be tested together with application code. The 5.6.3 release includes fixes around Django workers and warm shutdown behavior.
Official sources
- [1]celery/celery — GitHub repository(2026-10-06)
- [2]Celery 5.6.3 — README(2026-10-06)
- [3]Celery 5.6.3 — setup.py(2026-10-06)
- [4]Celery 5.6.3 release(2026-10-06)
- [5]Celery BSD-3-Clause license(2026-10-06)
Supplemental curator note
Celery should be designed as an operational system spanning broker, result backend, and worker processes rather than as task code alone. Start with a small queue and validate retry, acknowledgement, idempotency, and worker shutdown behavior early.
Try it in 3 steps
- 1
Install Celery 5.6.3
Pin the reviewed stable release. Python 3.9 or newer and a RabbitMQ server reachable on localhost are required.
python -m pip install "celery==5.6.3" - 2
Create a minimal task application
Follow the minimal application shown in the official README and configure RabbitMQ as the broker.
cat > tasks.py <<'PY' from celery import Celery app = Celery('hello', broker='amqp://guest@localhost//') @app.task def hello(): return 'hello world' PY - 3
Start a worker and enqueue a task
Run the worker in one terminal, enqueue the task from another, and confirm receipt and execution in the worker log.
celery -A tasks worker --loglevel=INFO # In another terminal: python -c "from tasks import hello; print(hello.delay())"
Growth
Growth trends · Last 30 days
28,936 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- amqp
- python
- python-library
- python3
- queue-tasks
- queue-workers
- queued-jobs
- redis
- redis-queue
- sqs
- sqs-queue
- task-manager
- Stars
- 28,936
- Forks
- 5,205
- Watchers
- 450
- Open issues
- 737
- Contributors
- 401
- Owner type
- Organization
- Primary language
- Python
- License
- BSD-3-Clause
- Repository last updated
- Oct 5, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Asynq13,748 Stars
2 shared tag(s) · 1 shared category(s)
distribute background tasks to Redis-backed worker queues with retries and scheduling
Go - Sarama12,523 Stars
2 shared tag(s) · 1 shared category(s)
cover Kafka producers, consumer groups, administration, and transactions from Go
Go - kafka-go8,638 Stars
2 shared tag(s) · 1 shared category(s)
use high-level Reader and Writer APIs or drop down to a low-level pure-Go Kafka connection
Go - Lapin1,237 Stars
2 shared tag(s) · 1 shared category(s)
connect Rust services to RabbitMQ over AMQP 0-9-1 with runtime-agnostic async APIs
Rust - Dask13,932 Stars
2 shared tag(s) · Same language
scale parallel analytics with NumPy/pandas-like collections and lazy task graphs
Python - TensorFlow200,710 Stars
2 shared tag(s)
machine-learning infrastructure with important Python and dependency changes in 2.21
C++
Report incorrect information
Tell us if any listing information is incorrect or outdated.