django-celery - Celery Integration for Django

http://cloud.github.com/downloads/ask/celery/celery_128.png
Version:2.4.1
Web:http://celeryproject.org/
Download:http://pypi.python.org/pypi/django-celery/
Source:http://github.com/ask/django-celery/
Keywords:celery, task queue, job queue, asynchronous, rabbitmq, amqp, redis, python, django, webhooks, queue, distributed

django-celery provides Celery integration for Django; Using the Django ORM and cache backend for storing results, autodiscovery of task modules for applications listed in INSTALLED_APPS, and more.

Celery is a 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. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).

Celery is already used in production 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 support for Redis and databases (SQLAlchemy / Django) is also available.

Using django-celery

To enable django-celery for your project you need to add djcelery to INSTALLED_APPS:

INSTALLED_APPS += ("djcelery", )

then add the following lines to your settings.py:

import djcelery
djcelery.setup_loader()

Everything works the same as described in the Celery User Manual, except you need to invoke the programs through manage.py:

Program Replace with
celeryd python manage.py celeryd
celerybeat python manage.py celerybeat
camqadm python manage.py camqadm
celeryev python manage.py celeryev

The other main difference is that configuration values are stored in your Django projects’ settings.py module rather than in celeryconfig.py.

If you’re trying celery for the first time you should start by reading Getting started with django-celery

Special note for mod_wsgi users

If you’re using mod_wsgi to deploy your Django application you need to include the following in your .wsgi module:

import os
os.environ["CELERY_LOADER"] = "django"

Documentation

The Celery User Manual contains user guides, tutorials and an API reference. Also the django-celery documentation, contains information about the Django integration.

Installation

You can install django-celery either via the Python Package Index (PyPI) or from source.

To install using pip,:

$ pip install django-celery

To install using easy_install,:

$ easy_install django-celery

You will then want to create the necessary tables. If you are using south for schema migrations, you’ll want to:

$ python manage.py migrate djcelery

For those who are not using south, a normal syncdb will work:

$ python manage.py syncdb

Downloading and installing from source

Download the latest version of django-celery from http://pypi.python.org/pypi/django-celery/

You can install it by doing the following,:

$ tar xvfz django-celery-0.0.0.tar.gz
$ cd django-celery-0.0.0
$ python setup.py build
# python setup.py install # as root

Using the development version

You can clone the git repository by doing the following:

$ git clone git://github.com/ask/django-celery.git

Getting Help

Mailing list

For discussions about the usage, development, and future of celery, please join the celery-users mailing list.

IRC

Come chat with us on IRC. The #celery channel is located at the Freenode network.

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to our issue tracker at http://github.com/ask/django-celery/issues/

Contributing

Development of django-celery happens at Github: http://github.com/ask/django-celery

You are highly encouraged to participate in the development of celery. If you don’t like Github (for some reason) you’re welcome to send regular patches.

License

This software is licensed under the New BSD License. See the LICENSE file in the top distribution directory for the full license text.