前言:

51cto的文章已经不再补充更新了,另外celery rabbitmq详细的使用方法请到这里浏览.

http://xiaorui.cc/2014/11/16/celery-rabbitmq%E5%AE%9E%E7%8E%B0%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97%E7%9A%84%E5%BC%82%E6%AD%A5%E6%89%A7%E8%A1%8C/

为啥要用celery ?

在我的应用下,可以把他异步到后台执行,想起来了,把他调到前面。

和rabbitmq又有啥关系?

和rabbitmq的关系只是在于,celery没有消息存储功能,他需要介质,比如rabbitmq redis mysql mongodb 都是可以的。有这个可控的东西,你也可以在库里面搞搞。推荐使用rabbitmq,他的速度和可用性都很高,redis这东西就怕意外,当然你运气很好,不怕他意外的挂掉,是可以用的。

Celery和RabbitMQ是两个层面的东西。

Celery是一个分布式的任务队列。它的基本工作就是管理分配任务到不同的服务器,并且取得结果。至于说服务器之间是如何进行通信的?这个Celery本身不能解决。

所以,RabbitMQ作为一个消息队列管理工具被引入到和Celery集成,负责处理服务器之间的通信任务。

当然,后来Celery相继增加了一些对Redis,MongoDB之类的支持。原因是RabbitMQ尽管足够强大,但对于一些相对简单的业务环境来说可能太多(复杂)了一些。这样用户可以有多一些的选择。

celery的介绍

Celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。

celery用于生产系统每天处理数以百万计的任务。

celery是用Python编写的,但该协议可以在任何语言实现。它也可以与其他语言通过webhooks实现。

建议的消息代理RabbitMQ的,但提供有限支持Redis, Beanstalk, MongoDB, CouchDB, ,和数据库(使用SQLAlchemy的或Django的 ORM) 。

celery是易于集成Django, Pylons and Flask,使用 django-celery, celery-pylons and Flask-Celery 附加包即可。

官方说,他们在用 ~

074432221.jpg

©著作权归作者所有:来自51CTO博客作者rfyiamcool的原创作品,谢绝转载,否则将追究法律责任

celery mysql 异步_celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis]相关推荐

  1. Celery多个定时任务使用RabbitMQ,Queue冲突解决

    Celery多个定时任务使用RabbitMQ,Queue冲突解决 一. 场景描述 使用celery实现定时任务后,任务会被定时添加到后端指定的队列里,队列可以是RabbitMQ,也可以是redis. ...

  2. celery 停止任务_celery异步任务框架

    目录 Celery 一.官方 二.Celery异步任务框架Celery架构图消息中间件任务执行单元任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包管理,结 ...

  3. celery的中文_celery异步任务框架

    目录 Celery 一.官方 二.Celery异步任务框架Celery架构图消息中间件任务执行单元任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包管理,结 ...

  4. java 分布式任务队列_cerely-分布式异步任务队列

    Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async task)和定时任务(cron ...

  5. python celery应用场景_Celery使用背景与功能概要

    Celery使用背景与功能概要 2018-03-28T00:35:49 532 0 0 #### Celery是Python开发的分布式任务调度模块. #### 本系列文章将详细讲解Celery的各种 ...

  6. 服务端异步IO配合协程浅析

    服务端异步IO配合协程浅析 代码如下 #coding:utf-8 import socket from selectors import DefaultSelector, EVENT_READ, EV ...

  7. 浅析JS异步、事件循环任务队列

    站在前人肩膀上可以看得更远,也不一定,至少比你自己看得远. 一.带着问题去想 问题:JS为什么是单线程? 为什么需要异步?单线程又是如何实现异步的? 第一个问题:javaScript最初被设计用在浏览 ...

  8. celery mysql flask_如何在Flask中创建Celery实例?

    我在flask程序中使用了工厂函数和蓝本,把Flask实例的创建放在了manage.py中(看过Flask Web开发这本书的同学应该懂我). 现在我想要创建一个Celery的实例(在app程序包中) ...

  9. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ

    RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ ...

最新文章

  1. 获取数组第N个元素的方法
  2. HDU3949 XOR (线性基、查找第k小值)
  3. matlab shortest函数,MATLAB函數graphallshortestpaths不返回對稱矩陣
  4. ubuntu右键打开终端(Open Terminal Here)失效
  5. mysql的limit、order by和group by的用法
  6. pytorch Resnet
  7. 【零基础学Java】—对象的内存图(八)
  8. 谈谈C#中的事件注册和注销
  9. 《DNS与BIND(第5版)》——第10章 高级功能10.1 地址匹配列表和ACL
  10. SRv6技术课堂:SRv6可靠性方案(一)
  11. 简简单单利用字典破解zip文件口令
  12. 通用数据权限设计方案
  13. 计算机主板电源线接法,主板电源线怎么接
  14. mermaid与flowchart.js绘制流程图分支结构试验
  15. Camera中onPreviewFrame()方法的视频方向旋转
  16. Vue CLI构建SPA项目教你手把手创建SPA项目
  17. 最优化算法学习笔记+个人总结(一)
  18. python itchat 抢红包-Python itchat模块在微信上的各种小应用
  19. 数组索引必须为正整数或逻辑值。
  20. 《STL》— UVa10815 Andy's First Dictionary

热门文章

  1. 深度解析Cocoa异步请求和libxml2.dylib教程(1)
  2. jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
  3. MySQL基本指令汇总
  4. 深入浅出WPF之Binding的使用(一)
  5. html间数据传送,Express框架与html之间如何进行数据传递(示例代码)
  6. matlab图像输出表格_matlab 图像输出3维字
  7. 图片播放器小项目(详解)
  8. input子系统基础之按键3——input子系统架构总览
  9. Linux tp5伪静态设置
  10. vue项目创建,redis列表字典操作,django用redis的第二种方法