建议的消息代理RabbitMQ的，但提供有限支持Redis, Beanstalk, MongoDB, CouchDB, ，和数据库（使用SQLAlchemy的或Django的 ORM） 。
Celery is easy to use and maintain, and does not need configuration files.
It has an active, friendly community you can talk to for support, including a mailing-list and and an IRC channel.
Here's one of the simplest applications you can make:
from celery import Celery celery = Celery('hello', broker='amqp://guest@localhost//') @celery.task def hello(): return 'hello world'
Workers and clients will automatically retry in the event of connection loss or failure, and some brokers support HA in way of Master/Master or Master/Slave replication.
A single Celery process can process millions of tasks a minute, with sub-millisecond round-trip latency (using RabbitMQ, py-librabbitmq, and optimized settings).
Almost every part of Celery can be extended or used on its own, Custom pool implementations, serializers, compression schemes, logging, schedulers, consumers, producers, autoscalers, broker transports and much more.
- AMQP, Redis
- memcached, MongoDB
- SQLAlchemy, Django ORM
- Apache Cassandra, IronCache
- pickle, json, yaml, msgpack.
- zlib, bzip2 compression.
- Cryptographic message signing.
Celery is easy to integrate with web frameworks, some of which even have integration packages:
Django django-celery Pyramid pyramid_celery Pylons celery-pylons Flask not needed web2py web2py-celery Tornado tornado-celery
The integration packages are not strictly necessary, but they can make development easier, and sometimes they add important hooks like closing database connections at fork.