This document is for Celery's development version, which can be significantly different from previous releases. Get old docs here: 2.5.
To use Celery you need at least two main components; a message broker and a worker.
The message broker enables clients and workers to communicate through messaging. There are several broker implementations available, the most popular being RabbitMQ.
The worker processes messages, and consists of one or more physical (or virtual) nodes.
The action to take whenever a message of a certain type is received is called a “task”.
Go to Routing Tasks.
Celery takes advantage of AMQPs flexible routing model. Tasks can be routed to specific servers, or a cluster of servers by binding workers to different queues. A single worker node can be bound to one or more queues. Multiple messaging scenarios are supported: round robin, point-to-point, broadcast (one-to-many), and more.
Celery aims to hide the complexity of AMQP through features like Automatic routing, while still preserving the ability to go low level if that should be necessary.