你正在阅读 Celery 3.1 的文档。开发版本文档见: 此处.

Using SQLAlchemy

Experimental Status

The SQLAlchemy transport is unstable in many areas and there are several issues open. Sadly we don’t have the resources or funds required to improve the situation, so we’re looking for contributors and partners willing to help.

Installation

Configuration

Celery needs to know the location of your database, which should be the usual SQLAlchemy connection string, but with ‘sqla+’ prepended to it:

BROKER_URL = 'sqla+sqlite:///celerydb.sqlite'

This transport uses only the BROKER_URL setting, which have to be an SQLAlchemy database URI.

Please see SQLAlchemy: Supported Databases for a table of supported databases.

Here’s a list of examples using a selection of other SQLAlchemy Connection String‘s:

# sqlite (filename)
BROKER_URL = 'sqla+sqlite:///celerydb.sqlite'

# mysql
BROKER_URL = 'sqla+mysql://scott:tiger@localhost/foo'

# postgresql
BROKER_URL = 'sqla+postgresql://scott:tiger@localhost/mydatabase'

# oracle
BROKER_URL = 'sqla+oracle://scott:tiger@127.0.0.1:1521/sidname'

Results

To store results in the database as well, you should configure the result backend. See Database backend settings.

Limitations

The SQLAlchemy database transport does not currently support:

  • Remote control commands (celery events command, broadcast)
  • Events, including the Django Admin monitor.
  • Using more than a few workers (can lead to messages being executed multiple times).

上一个主题

Using Redis

下一个主题

Using the Django Database

本页