我们正在将Twisted广泛用于需要大量异步io的应用程序。在某些情况下,某些东西是用CPU绑定的,为此,我们产生了一个进程池来完成工作,并且拥有一个跨多个服务器管理这些进程的系统-
所有这些都是在Twisted中完成的。效果很好。问题在于,很难使新团队成员跟上步伐。用Twisted编写异步代码需要接近垂直的学习曲线。好像人类只是自然而然地没有那样想。
我们可能正在考虑混合方法。也许将xmlrpc服务器部分和流程管理保留在Twisted中,并在代码中实现看起来至少在某种程度上是html" target="_blank">同步的而不是这样的其他东西。再说一次,我喜欢显式的而不是隐式的,所以我必须多考虑一下。无论如何,进入greenlets-
这些东西的工作情况如何?因此存在Stackless,正如您从我的Gallentean头像中看到的那样,我很清楚CCP的旗舰级EVE
Online游戏第一手使用它所取得的巨大成功。那Eventlet或gevent呢?好吧,目前只有Eventlet与Twisted兼容。但是gevent声称它更快,因为它不是纯Python实现,而是依赖libevent。它还声称具有较少的特质和缺陷。Gevent据我所知,它由1个人维护。这让我有些不安,但是所有出色的项目都是以这种方式开始的…然后是PyPy-我什至还没有读完它-
只是在这个线程中看到了:Stackless的缺点。
如此令人困惑-我想知道该怎么做-
听起来像Eventlet可能是最好的选择,但它真的足够稳定吗?有人对它有经验吗?我们是否应该使用Stackless而不是因为它已经存在并且它是经过验证的技术-
就像Twisted一样-它们可以很好地协同工作。但我仍然讨厌不得不使用单独的Python版本来执行此操作。该怎么办....
但是,这个有点令人讨厌的博客条目对我来说很令人头疼:异步IO,适合成年者
我不明白Twisted就像Java一样,对我来说Java通常是您在线程思维中所处的位置,但无论如何。不过,如果那个猴子补丁真的像那样工作,那就哇。哇!
您可能要签出:
Eventlet和gevent不能真正与Stackless相提并论,因为Stackless附带了一个不知道tasklet的标准库。有一些用于Stackless的套接字实现,但是没有gevent.monkey这么全面。CCP不使用裸露的Stackless,它具有一种称为Stackless
I / O的功能,其AFAIK仅适用于Windows,并且从未开源(?)。
eventlet和gevent都可以在Stackless上运行,而不是在greenlet上运行。在某些时候,我们甚至尝试将其作为GSoC项目进行,但没有找到学生。
问题内容: websockets有趣的部分是从服务器向浏览器发送本质上未经请求的内容,对吗? 好吧,我正在使用GregorMüllegger的django-websocket。使Websockets在Django中工作确实是一个很棒的早期尝试。 我完成了“ hello world”。它的工作方式是:当请求是websocket时,会将对象websocket附加到请求对象。因此,在解释websocke
Stackless Python 是一个增强版的 Python 编程语言,允许程序员受益于基于线程的编程,而不会有一半线程的性能和复杂的问题。其最大的特点就是微线程,可避免使用操作系统线程导致的开销过大的问题。
问题内容: 经过大量搜索和谷歌搜索后,我回到井上。我有Django 1.4,正在寻找一个不错的 工作 示例来弄清楚让Django与gevent一起工作。我喜欢Django框架,但需要它来处理长时间轮询。我已经有一个可以正常使用gevent的工作服务器,它可以处理较长的轮询请求以及通过HTTP以约10帧/秒的速度传输图像。我想使用Django中的所有优点,为这一部分提供一个框架。 那里有很多例子,但
eventlet是一款使用Python编写的为高并发的网络编程而设计的库。由第二人生(secondlife)所开源发布。在开源云计算技术OpenStack里起到了比较重要的作用。 它通过greenlet提供的协程功能,让开发者可以不用将以往的多线程等并发程序的开发方式转变成异步状态机模型,就能直接使用select/epoll/kqueue等操作系统提供的支持高并发IO接口,并且能尽可能地发挥它们在
Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我
Gevent 是一个基于 greenlet 的 Python 的并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效。 于greenlet、eventlet相比,性能略低,但是它封装的API非常完善,最赞的是提供了一个monkey类,可以将现有基于Python线程直接转化为greenlet,相当于proxy了一下(打了patch)。 功能包括: 基于li
本文向大家介绍django-cms 安装或设置,包括了django-cms 安装或设置的使用技巧和注意事项,需要的朋友参考一下 示例 有关设置或安装django-cms的详细说明。 首先python的版本要高一些,否则安装django—cms会报错 安装cmsinstaller不能够正常下载 利用virtualenv进行安装配置 注意中文的配置 djangocms配置中文 djangocms-fo
本文向大家介绍django-rest-framework 安装或设置,包括了django-rest-framework 安装或设置的使用技巧和注意事项,需要的朋友参考一下 示例 要求 Python(2.7、3.2、3.3、3.4、3.5、3.6) Django(1.7 +,1.8、1.9、1.10、1.11) 安装 您可以pip用来从github安装或克隆项目。 使用pip: 使用git clon