Jump to: navigation, search

Celery

Revision as of 00:33, 20 June 2013 by Jessica Lucci (talk | contribs) (Created page with "'''Celery Homepage''' http://celeryproject.org/ === OVERVIEW === Celery is a Distributed Task Queue. "Celery is an asynchronous task queue/job queue based on distributed me...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Celery Homepage http://celeryproject.org/

OVERVIEW

Celery is a Distributed Task Queue.

"Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready)."


ARCHITECTURE

Celery Architecture

Celery works by asynchronously (or synchronously if designated) posting task objects to any AMQP - compliant message queue. (List of suggested implementations can be found here: http://docs.celeryproject.org/en/latest/getting-started/brokers/index.html). This is not a dedicated queue, so your queue can be hosted locally, on another box, in a different project, etc. The tasks now sitting on the queue are picked up by the next available listening celery worker. These workers, like the queue, can be hosted locally, or on an external host, or on multiple hosts. The worker will process and execute the task, then return the results up through the celery client and back into the application.


WORKERS

http://docs.celeryproject.org/en/latest/userguide/workers.html Celery workers are extremely efficient and customizable. Workers can set time-out for tasks (both before and during run-time), set concurrency levels, number of processes being run, and can even be set to autoscale. Workers can be assigned to specific queues and can be added to queues during run time.


DEBUGGING