Celery-4.1 用户指南: Concurrency (并发)
简介
Eventlet 的主页对它进行了描述;它是一个python的并发网络库,可以让你更改如何运行你的代码而不是怎么编写代码。
- 对高可扩展非阻塞IO操作,它使用 epoll或者libevent。
Coroutines使得开发者使用一个类似于线程的阻塞式编程风格,但是却能提供非阻塞IO的好处。- 事件的分发是隐式的:意味着你可以很容易的从python解释器中使用Eventlet,或者作为一个大应用的一部分。
Celery 支持 Eventlet 作为一种可选的执行池实现。在有些情况下,它比 prefork 更优,但是你需要确保你的任务不会执行阻塞调用,因为这会阻塞工作单元中所有其他操作直到阻塞调用返回。
prefork 池能使用多个进程,但是通常每个CPU限制在少数几个进程。使用 Eventlet,你可以高效的开启成百上千个 green-thread。对一个消息源系统进行的一个非正式的测试显示 Eventlet 池可以每秒获取和处理数百个消息,而 prefork 池处理100个 消息源使用了14秒。注意这是异步IO优势明显的一个应用示例(异步http请求)。你可能想混合使用 Eventlet 和 prefork 工作单元,并且根据兼容性和哪个工作更佳来将任务路由到相应工作单元。
启用 Eventlet
你可以通过使用工作单元的 celery worker -P 选项启用 Eventlet 池:
$ celery -A proj worker -P eventlet -c 1000
示例
查看celery发布中的 Eventlet example 文件夹获取更多使用 Eventlet 的示例。
转自:https://blog.csdn.net/libing_thinking/article/details/78606278
Celery-4.1 用户指南: Concurrency (并发)的更多相关文章
- Java_并发工具包 java.util.concurrent 用户指南(转)
译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html.本 ...
- (转)并发编程 – Concurrent 用户指南
原文出处: 高广超 译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/in ...
- dubbo用户指南
用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启 ...
- 《Apache Velocity用户指南》官方文档
http://ifeve.com/apache-velocity-dev/ <Apache Velocity用户指南>官方文档 原文链接 译文连接 译者:小村长 校对:方腾飞 Qui ...
- dubbo用户指南-总结
dubbo用户指南-总结 入门 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用 ...
- Celery-4.1 用户指南: Calling Tasks(调用任务)
基础 本文档描述 Celery 中任务实例和 Canvas 使用的统一 “Calling API”. API 中定义了一个执行选项的标准集,以及三个方法: - apply_async(args[, k ...
- Celery-4.1 用户指南: Daemonization (系统守护进程)
Generic init-scripts 查看Celery发布里的 extra/generic-init.d/ 文件夹. 这个文件夹中包含了celery worker 程序的通用bash初始化脚本,可 ...
- dubbo-刷一遍用户指南(三)
想更好的使用dubbo,最好刷几遍用户指南,dubbo用户指南几乎包含了所有dubbo所有的特性 用户指南地址:https://dubbo.gitbooks.io/dubbo-user-book/de ...
- Gradle用户指南(1)-Gradle安装
前置条件 Gradle 需要 Java JDK 或者 JRE,版本是 6 及以上.Gradle 将会装载自己的 Groovy 库,因此,Groovy 不需要被安装.任何存在的 Groovy 安装都会被 ...
随机推荐
- Oralce查询后修改数据,弹窗报提示these query result are not updateable,include the ROWID to get updateable
select t.*, (select a.ANNEXNAME from base_annex a where a.id = t.closeFile) closeFileName, (select a ...
- Boostarp-响应式
一.响应式 响应式介绍 - 响应式布局是什么? 同一个网页在不同的终端上呈现不同的布局等 - 响应式怎么实现的? 1. CSS3 media query 媒体查询 2. JS去控制网页的布局和样式等 ...
- myeclipse2017复制项目后如何改web context root
点中项目,然后alt+enter,或者 然后
- Unable to load native-hadoop library for your platform(已解决)
1.增加调试信息寻找问题 2.两种方式解决unable to load native-hadoop library for you platform 附:libc/glibc/glib简介 参考: 1 ...
- MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache
转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...
- iOS-文本转语音
- 文本转语音 iOS提供了一个类AVSpeechSynthesizer来实现文本到语音的功能, 即读出文字 直接上代码: AVSpeechSynthesizer *synthesizer = [[A ...
- 验证实现element-ui树形控件的自定义图标及右键菜单
许久不用,element-ui已经更新至2.4.1版本.直接进入今天的正题,前提是node.js的环境还有vue及elment-ui都已经安装.由于element-ui的官方文档中介绍比较粗略,试了许 ...
- (转)android webview用法小结
原文地址:http://blog.csdn.net/ethan_xue/article/details/7841431 将webview里常用的东西拿出来分享下 想要webview加载页面,只需web ...
- Mac 下 Mosquitto 安装和配置 (Mosquitto为开源的mqtt服务器)
官网:http://mosquitto.org/download/ 官网的介绍简单明了 Mac 下一个命令“brew install mosquitto” 安装成功了,还学会了brew 安装目录:/u ...
- STL迭代器辅助函数——advance
Advance(i, n) increments the iterator i by the distance n. If n > it it , the call has no effect. ...