123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- .. _tut-otherqueues:
- ==========================================================
- Using Celery with Redis/Database as the messaging queue.
- ==========================================================
- .. contents::
- :local:
- .. _otherqueues-redis:
- Redis
- =====
- For the Redis support you have to install the Python redis client::
- $ pip install -U redis
- .. _otherqueues-redis-conf:
- Configuration
- -------------
- Configuration is easy, set the transport, and configure the location of
- your Redis database::
- BROKER_TRANSPORT = "redis"
- BROKER_HOST = "localhost" # Maps to redis host.
- BROKER_PORT = 6379 # Maps to redis port.
- BROKER_VHOST = "0" # Maps to database number.
- Results
- ~~~~~~~
- You probably also want to store results in Redis::
- CELERY_RESULT_BACKEND = "redis"
- REDIS_HOST = "localhost"
- REDIS_PORT = 6379
- REDIS_DB = 0
- For a complete list of options supported by the Redis result backend see
- :ref:`conf-redis-result-backend`
- If you don't intend to consume results you should disable them::
- CELERY_IGNORE_RESULT = True
- .. _otherqueues-sqlalchemy:
- SQLAlchemy
- ==========
- .. _otherqueues-sqlalchemy-conf:
- For the SQLAlchemy transport you have to install the
- `kombu-sqlalchemy` library::
- $ pip install -U kombu-sqlalchemy
- Configuration
- -------------
- This transport uses only the :setting:`BROKER_HOST` setting, which have to be
- an SQLAlchemy database URI.
- #. Set your broker transport::
- BROKER_TRANSPORT = "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:
- .. code-block:: python
- # 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"
- .. _`SQLAlchemy: Supported Databases`:
- http://www.sqlalchemy.org/docs/core/engines.html#supported-databases
- .. _`SQLAlchemy Connection String`:
- http://www.sqlalchemy.org/docs/core/engines.html#database-urls
- Results
- ~~~~~~~
- To store results in the database as well, you should configure the result
- backend. See :ref:`conf-database-result-backend`.
- If you don't intend to consume results you should disable them::
- CELERY_IGNORE_RESULT = True
- .. _otherqueues-django:
- Django Database
- ===============
- .. _otherqueues-django-conf:
- For the Django database transport support you have to install the
- `django-kombu` library::
- $ pip install -U django-kombu
- Configuration
- -------------
- The database backend uses the Django `DATABASE_*` settings for database
- configuration values.
- #. Set your broker transport::
- BROKER_TRANSPORT = "djkombu.transport.DatabaseTransport"
- #. Add :mod:`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
|