Celery is a distributed task queue written in Python, which works using distributed messages. Each execution unit in celery is called a task. A task can be executed concurrently on one or more servers using processes called workers. By default, celery achieves this using multiprocessing
, but it can also use other backend such as gevent, for example.
Tasks can be executed synchronously or asynchronously with results available in the future, like objects. Also, task results can be stored in storage backend such as Redis, databases, or in files.
Celery differs from message queues in that the basic unit in celery is an executable task—a callable in Python—rather than just a message.
Celery, however, can be made to work with message queues. In fact, the default broker for passing messages in celery is RabbitMQ, the popular implementation of AMQP. Celery can also work with Redis as the broker backend.
Since Celery takes a task, and scales it over multiple workers...