02.任务队列和中间人
来源:互联网 发布:电子表格数据样板 编辑:程序博客网 时间:2024/06/16 22:20
上一篇介绍Celery是处理任务队列的分布式系统,那么什么是任务队列?
任务队列
任务队列是一种分配工作到线程或者计算机的一种机制。
任务队列的输入是叫任务的工作单元,worker进程会不断监视任务队列进行新的工作。
Celery使用消息通信,通常在client和worker之间有个中间人(broker),新加入一个任务客户端会发送一个消息到任务队列,然后中间人会把消息传递给worker。
Celery系统由多个worker和broker组成,高可用,横向扩展性强。
可以实现语言间的相互调用,通过暴露HTTP接口请求一个任务。
Celery可以运行在单个、多个机器,甚至是数据中心。
使用Redis作为broker
Celery支持两种稳定的broker,分别是RabbitMQ和Redis。本系列文章使用Redis作为broker和backend,backend后续介绍。
可以专门安装带redis依赖的celery pip install celery[redis]
如果使用过pip install celery
就不需要安装了。
#配置使用redis的broker很容易from celery import Celery#第一种方法,在创建Celery实例时作为参数传递app = Celery("projectName",broker="redis://localhost:6379/0")#第二种通过配置broker_url配置项设置app.conf.broker_url = "redis://localhost:6379/0"'''URL格式为:redis://:password@IPorHost:port/dbNumber如果对应部分没填写默认redis://localhost:6379/0比如“redis://”、“redis://localhost”...'''
Celery执行异步任务的时自身并不存储结果和状态的,想要获得返回结果和状态需要配置结果后端(result backend)用来存储结果和状态。
from celery import Celery#第一种和broker一样,当参数传递到Celeryapp = Celery("pName",broker="redis://", backend="redis://")#第二种,使用配置参数result_backendapp.conf.result_backend = "redis://"'''URL格式同broker格式一样'''
参考文档
http://docs.celeryproject.org/en/latest/getting-started/brokers/redis.html
阅读全文
0 0
- 02.任务队列和中间人
- 事件循环和任务队列
- javascript线程,任务队列和事件循环
- 第三章 栈和队列实习任务
- DuiVision开发教程(12)-任务类和任务队列
- 任务队列
- 任务队列
- 任务队列
- 身份验证、中间人攻击和数字签名:浅谈密码学
- 任务队列过程 对于任务的处理采用单独的线程 和任务列表进行处理
- c++ 线程并发、任务队列、异步 任务封装和分发 lambda与任务 boost
- iOS GCD同步队列和同步任务 堵塞和死锁
- [网络和多线程]6、GCD 队列和任务
- 多线程GCD的详细讲解 任务和队列(串行队列,并发队列) (一)
- 多线程GCD的详细讲解 任务和队列(串行队列,并发队列)
- Linux下多任务间通信和同步-消息队列
- Linux下多任务间通信和同步-消息队列
- Linux下多任务间通信和同步-消息队列
- IoT物联网云平台比较
- 【Java】Java中判断进行数据库批量操作是否成功
- Filter(过滤器)与Interceptor(拦截器)的区别
- Ubuntu 环境下调试修改OpenCV3.2.0源码
- Gitlab v8.17.4 安装并汉化(ubuntu14.04)
- 02.任务队列和中间人
- CSS常见布局代码片段
- cocos2d-x项目打包成android apk过程中所遇到的错误
- tomcat8w.exe起到问题
- ELK日志系统介绍
- JavaScript RSA 超长字符加解密
- 下拉列表
- Hadoop
- activemq的几种基本通信方式总结