celery_消息队列

 

http://www.cnblogs.com/wupeiqi/articles/8796552.htmlhtml

 

一. celery 简介

Celery 是一个专一于实时处理和任务调度的分布式任务队列, 同时提供操做和维护分布式系统所需的工具.. 所谓任务就是消息, 消息中的有效载荷中包含要执行任务须要的所有数据.python

Celery 是一个分布式队列的管理工具, 能够用 Celery 提供的接口快速实现并管理一个分布式的任务队列.redis

Celery 自己不是任务队列, 是管理分布式任务队列的工具. 它封装了操做常见任务队列的各类操做, 咱们使用它能够快速进行任务队列的使用与管理.后端

 

Celery 是一个异步任务队列。你可使用它在你的应用上下文以外执行任务。总的想法就是你的应用程序可能须要执行任何消耗资源的任务均可以交给任务队列,让你的应用程序自由和快速地响应客户端请求。服务器

使用 Celery 运行后台任务并不像在线程中这样作那么简单。可是好处多多,Celery 具备分布式架构,使你的应用易于扩展。一个 Celery 安装有三个核心组件:架构

  1. Celery 客户端: 用于发布后台做业。当与 Flask 一块儿工做的时候,客户端与 Flask 应用一块儿运行。
  2. Celery workers: 这些是运行后台做业的进程。Celery 支持本地和远程的 workers,所以你就能够在 Flask 服务器上启动一个单独的 worker,随后随着你的应用需求的增长而新增更多的 workers。
  3. 消息代理: 客户端经过消息队列和 workers 进行通讯,Celery 支持多种方式来实现这些队列。最经常使用的代理就是 RabbitMQ 和 Redis

Celery 特性 :

  • 方便查看定时任务的执行状况, 如 是否成功, 当前状态, 执行任务花费的时间等.
  • 使用功能齐备的管理后台或命令行添加,更新,删除任务.
  • 方便把任务和配置管理相关联.
  • 可选 多进程, Eventlet 和 Gevent 三种模型并发执行.
  • 提供错误处理机制.
  • 提供多种任务原语, 方便实现任务分组,拆分,和调用链.
  • 支持多种消息代理和存储后端.
  • Celery 是语言无关的.它提供了python 等常见语言的接口支持.
相关文章
相关标签/搜索