This document describes an older version of Celery (2.2). For the latest stable version please go here.
For the Redis support you have to install the Python redis client:
$ pip install -U redis
Configuration is easy, set the transport, and configure the location of your Redis database:
BROKER_BACKEND = "redis"
BROKER_HOST = "localhost" # Maps to redis host.
BROKER_PORT = 6379 # Maps to redis port.
BROKER_VHOST = "0" # Maps to database number.
You probably also want to store results in Redis:
CELERY_RESULT_BACKEND = "redis"
REDIS_HOST = 6379
REDIS_PORT = 6379
REDIS_DB = 0
For a complete list of options supported by the Redis result backend see Redis backend settings
If you don’t intend to consume results you should disable them:
CELERY_IGNORE_RESULT = True
For the SQLAlchemy transport you have to install the kombu-sqlalchemy library:
$ pip install -U kombu-sqlalchemy
This transport uses only the BROKER_HOST setting, which have to be an SQLAlchemy database URI.
Set your broker transport:
BROKER_BACKEND = "sqlakombu.transport.Transport"
Configure the database URI:
BROKER_HOST = "sqlite:///celerydb.sqlite"
Please see SQLAlchemy: Supported Databases for a table of supported databases. Some other SQLAlchemy Connection String, examples:
# sqlite (filename)
BROKER_HOST = "sqlite:///celerydb.sqlite"
# mysql
BROKER_HOST = "mysql://scott:tiger@localhost/foo"
# postgresql
BROKER_HOST = "postgresql://scott:tiger@localhost/mydatabase"
# oracle
BROKER_HOST = "oracle://scott:tiger@127.0.0.1:1521/sidname"
To store results in the database as well, you should configure the result backend. See Database backend settings.
If you don’t intend to consume results you should disable them:
CELERY_IGNORE_RESULT = True
For the Django database transport support you have to install the django-kombu library:
$ pip install -U django-kombu
The database backend uses the Django DATABASE_* settings for database configuration values.
Set your broker transport:
BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
Add djkombu to INSTALLED_APPS:
INSTALLED_APPS = ("djkombu", )
Verify you database settings:
DATABASE_ENGINE = "mysql"
DATABASE_NAME = "mydb"
DATABASE_USER = "myuser"
DATABASE_PASSWORD = "secret"
The above is just an example, if you haven’t configured your database before you should read the Django database settings reference: http://docs.djangoproject.com/en/1.1/ref/settings/#database-engine
Sync your database schema.
$ python manage.py syncdb