- Background Processing
- Distributed
- Asynchronous/Synchronous
- Concurrency
- Periodic Tasks
- Retries

## 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).

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

Celery is written in Python, but the protocol can be implemented in any language. It can also operate with other languages using webhooks.

The recommended message broker is RabbitMQ, but limited support for Redis, Beanstalk, MongoDB, CouchDB, and databases (using SQLAlchemy or the Django ORM) is also available.

Celery is easy to integrate with Django, Pylons and Flask, using the django-celery, celery-pylons and Flask-Celery add-on packages.

### Example

This is a simple task adding two numbers:

    from celery.task 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:
   - First steps with Python
   - First steps with Django

### 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.

### Donate

Donations will be used to fund infrastructure and new features.

You can donate to the project using PayPal. For other arrangements you can send an e-mail to donate@celeryproject.org.

## Celery 2.2 released!

#### By @asksol on 2011-02-01.

A great number of new features, including Jython, eventlet and gevent support. Everything is detailed in the Changelog, which you should have read before upgrading.

Users of Django must also upgrade to django-celery 2.2.

This release would not have been possible without the help of contributors and users, so thank you, and congratulations!

## Celery 2.1.1 bugfix release

#### By @asksol on 2010-10-14.

All users are urged to upgrade. For a list of changes see the Changelog.

Users of Django must also upgrade to django-celery 2.1.1.

## Celery 2.1 released!

#### By @asksol on 2010-10-08.

This new version is now available at PyPI. Be sure to read the Changelog before upgrading.

## Celery 2.0 released!

#### By @asksol on 2010-07-02.

We're proud to announce the release of Celery 2.0. This version replaces the Django ORM with SQLAlchemy as the database result store. With this, Celery no longer depends on Django. Django integration is now available as a separate package called django-celery.

In addition there are a lot of new features: a curses monitor, time limits, complex crontab expressions, callbacks, simplified routing, and more. Everything is detailed in the Changelog, so be sure to read it before upgrading.

## Celery 1.0.6 released!

#### By @asksol on 2010-06-30.

RabbitMQ 1.8.0 came with stricter equivalence checks that broke the AMQP result backend, this release resolves this. If you've already used the AMQP backend you need to delete the previous declarations. For instructions please read the full Changelog. Download from PyPI, or simply install the upgrade using `pip install -U Celery==1.0.6`.

## Celery 1.0.5 released!

#### By @asksol on 2010-06-01.

This release contains some important bug fixes related to shutdown and broker connection loss, as well as some other minor fixes. Also AbortableTask has been added to contrib. Please read the full Changelog before you upgrade. Download from PyPI, or simply install the upgrade using `pip install -U Celery`.

## Celery 1.0.3 released!

#### By @asksol on 2010-05-15.

This release contains a drastic improvement in reliability and performance. Please read the full Changelog before you upgrade. Download from PyPI, or simply install the upgrade using `pip install -U Celery`.

## Celery 1.0.1 released!

#### By @asksol on 2010-03-20.

This is a bugfix release and has some important changes to the shutdown procedure. Also improved compatibility with Windows and Python 2.4. Read the full Changelog for more information. Download from PyPI, or simply install the upgrade using `pip install -U Celery`.

## Celery 1.0 released!

#### By @asksol on 2010-02-10

Celery 1.0 has finally been released! It is available on PyPI for downloading. You can also install it via `pip install Celery`. You can read the announcement here.

- Copyright (c) 2009-2011 Ask Solem and contributors.
- Web Design Jan Henrik Helmers