zoukankan      html  css  js  c++  java
  • celery_消息队列

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

    一. celery 简介

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

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

    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 等常见语言的接口支持.
  • 相关阅读:
    mysql常用时间列表的查询——七天内、本月、本周、某天
    js取数组获取最大值的四种方式
    Mysql按周,按月,按日,按小时分组统计数据
    Mysql中的sum函数为null时的解决办法
    Maven 中 dependencyManagement 标签使用
    嵌入式printf函数运用基于ti 16位MCU
    md5实现对用户名与密码的保护
    c# md5 算法实现
    define a struct
    file.open异常处理
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10356222.html
Copyright © 2011-2022 走看看