celery官方版是一款由Python开发的简单可靠的分布式调度框架。celery最新版其本质是生产者消费者模型,能够帮助用户查看执行是否成功、当前状态、执行所需时间等情况。celery框架侧重于实时操作,支持多种消息代理和存储后端,每天能够处理数以百万计的任务。
celery软件特色
&160;&160;&160;&160;&160;&160;简单:熟悉celery的工作流程后,配置使用简单
&160;&160;&160;&160;&160;&160;高可用:当任务执行失败或执行过程中发生连接中断,celery会自动尝试重新执行任务
&160;&160;&160;&160;&160;&160;快速:一个单进程的celery每分钟可处理上百万个任务
&160;&160;&160;&160;&160;&160;灵活:几乎celery的各个组件都可以被扩展及自定制
celery软件构成
&160;&160;&160;&160;&160;&160;消息中间件(Broker):官方提供了很多备选方案,支持RabbitMQ、Redis、Amazon SQS、MongoDB、Memcached 等,官方推荐RabbitMQ
&160;&160;&160;&160;&160;&160;任务执行单元(Worker):任务执行单元,负责从消息队列中取出任务执行,它可以启动一个或者多个,也可以启动在不同的机器节点,这就是其实现分布式的核心
&160;&160;&160;&160;&160;&160;结果存储(Backend):官方提供了诸多的存储方式支持:RabbitMQ、 Redis、Memcached,SQLAlchemy, Django ORM、Apache Cassandra、Elasticsearch等
celery工作原理
&160;&160;&160;&160;&160;&160;任务模块Task包含异步任务和定时任务。其中,异步任务通常在业务逻辑中被触发并发往消息队列,而定时任务由Celery Beat进程周期性地将任务发往消息队列;
&160;&160;&160;&160;&160;&160;任务执行单元Worker实时监视消息队列获取队列中的任务执行;
&160;&160;&160;&160;&160;&160;Woker执行完任务后将结果保存在Backend中;
celery更新日志
&160;&160;&160;&160;&160;&160;1.修复若干bug;
&160;&160;&160;&160;&160;&160;2.优化细节问题;