简介


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

最新文章

  1. 用.NET从外部dwg文件导入块
  2. ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
  3. JS(ajax笔记)
  4. 在MacOS和iOS系统中使用OpenCV
  5. jquery 的datatables插件问题
  6. js事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象
  7. 【转】 Android——eclipse共享library以及导出jar包
  8. 011_hasCycle
  9. Spring(三)——AOP
  10. Android之后台服务判断本应用Activity是否处于栈顶
  11. tempnam问题
  12. Algorithm --> 6174问题
  13. [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件
  14. kettle删除移动文件
  15. java集合迭代器
  16. Idea设置行注释不显示在行首
  17. Python全栈之路----函数进阶----迭代器
  18. odoo 11 实现多个字段对应一个查询参数的查询
  19. Spark中的IsNotNull函数怎么用
  20. 在线js调试工具JSbin、jsFiddle

热门文章

  1. 未能将网站配置为使用ASP.NET4.X 解决方法
  2. C# 处理base64 以及base64的原理分析
  3. 发现程序bug思路
  4. linux基础(10)-导航菜单
  5. js命令模式
  6. Spring Boot入门——web相关配置
  7. Linux软件安装(一)
  8. Word 2010 怎么在每一章中使用不同的页眉
  9. uva 10168 哥德巴赫猜想
  10. 利用Pelican搭建个人博客