Distributed Task Queue

Celery is a task queue/job queue based on distributed message passing. It is focused on real-time operation, but has support for scheduling as well.

The execution units, called tasks, are executed concurrently on one or more worker servers, asynchronously (in the background) or synchronously (wait until ready).

Celery is already used in production to process millions of tasks a day.

It was first created for Django, but is now also usable from Python. It can also operate with other languages via HTTP+JSON.

Example

This is a simple task adding two numbers:

from celery.decorators import task

@task
def add(x, y):
    return x + y

You can execute the task in the background, or wait for it to finish:

>>> result = add.delay(8, 8)
>>> result.wait() # wait for and return the result
16

Getting Started

  1. Install celery by download or pip install -U celery
  2. Set up RabbitMQ or one of the ghetto queue solutions.
  3. Select one of the following guides:

Community

There is a mailing-list available for general discussion.

For those craving real, human interaction, there is also an IRC channel (#celery on irc.freenode.net).

Finally, if you find a bug or would like to request a feature, please submit an issue.

1.0 is in beta.

By Ask on 08.02.2010

1.0 is scheduled to be released this week! Please help us test the latest release candiate to make this happen. To upgrade from an earlier version, please read the changelog.


New website.

By Ask on 08.02.2010

We finally got a home page. Big thanks to Jan Henrik Helmers


Copyright (c) 2009-2010, Ask Solem and contributors.
Page design by Jan Henrik Helmers