celery——任务调度模块
Celery是Python开发的并⾏分布式任务调度模块,今天抽空看了⼀下,果然接⼝简单,开发容易,5分钟就写出了⼀个异步发送邮件的
服务。
Celery本⾝不含消息服务,它使⽤第三⽅消息服务来传递任务,⽬前,Celery⽀持的消息服务有RabbitMQ、Redis甚⾄是数据库,当然
Redis应该是最佳选择。架构设计:
架构组成:
Celery的架构由三部分组成,消息中间件(message broker),任务执⾏单元(worker)和任务执⾏结果存储(task result store)组成。
消息中间件
Celery本⾝不提供消息服务,但是可以⽅便的和第三⽅提供的消息中间件集成。包括,, , (experimental), Amazon SQS(experimental), (experimental), (experimental),Django ORM (experimental),
任务执⾏单元
Worker是Celery提供的任务执⾏的单元,worker并发的运⾏在分布式的系统节点中。
任务结果存储
Task result store⽤来存储Worker执⾏的任务的结果,Celery⽀持以不同⽅式存储任务的结果,包括AMQP, Redis,memcached,
MongoDB,SQLAlchemy, Django ORM,Apache Cassandra, IronCache
另外, Celery还⽀持不同的并发和序列化的⼿段
并发, , , threads/single threaded
序列化
pickle, json, yaml, msgpack. zlib, bzip2 compression, Cryptographic message signing 等等
1.安装Celery
⽤pip或easy_install安装:
$ sudo pip install Celery
或者:
$ sudo easy_install Celery