Questions tagged «twisted»

14
干净,轻巧的替代Python的替代品吗?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 一个(很久以前),我写了一个网络蜘蛛,对它进行了多线程处理,以使并发请求能够同时发生。那是我的Python青年时代,在我了解GIL及其为多线程代码造成的相关麻烦之前(IE,大多数情况下,这些东西最终都被序列化了!)... 我想对这段代码进行重做,以使其更健壮并性能更好。基本上有两种方法可以执行此操作:我可以使用2.6+中的新多处理模块,也可以使用某种基于反应堆/事件的模型。我宁愿稍后再做,因为它更加简单且不易出错。 因此,问题与哪种框架最适合我的需求有关。以下是到目前为止我所知道的选项列表: Twisted:Python反应器框架的祖父:看起来很复杂,但是有点a肿。陡峭的学习曲线,可完成一项小任务。 Eventlet:从在家伙lindenlab。基于Greenlet的框架,适用于此类任务。我看了一下代码,但看起来不是很漂亮:不符合pep8,散布着印刷品(为什么人们要在框架中这样做!?),API似乎有点不一致。 PyEv:不成熟,尽管它基于libevent,所以现在似乎还没有人在使用它,因此它有一个可靠的后端。 asyncore:来自stdlib:über低级,似乎涉及很多工作,只是为了使事情起步。 龙卷风:尽管这是一种面向服务器的产品,旨在为动态网站提供服务器,但它确实具有异步HTTP客户端和简单的ioloop。看起来可以完成工作,但不能达到预期目的。[编辑:不幸的是,它不能在Windows上运行,这对我来说算是它了-这是我支持这个la脚平台的要求] 我有什么想念的吗?当然,必须有一个适合简化异步网络库的最佳选择的库! [编辑:非常感谢intgr指向此页面。如果滚动到底部,您将看到一个非常不错的项目列表,旨在以一种或多种方式解决此任务。实际上,自Twisted诞生以来,事情确实已经发生了变化:人们现在似乎更喜欢基于协同例程的解决方案,而不是传统的面向反应器/回调的解决方案。这种方法的好处是更直接的代码:我过去确实发现过,特别是在使用boost.asio时。在C ++中,基于回调的代码可能导致难以遵循的设计,并且对于未经训练的人来说是相对模糊的。使用协同例程可使您编写看起来至少同步一些的代码。我想现在我的任务是找出我喜欢的众多库中的哪一个,并尝试一下!很高兴我现在问...] [编辑:可能是关注或偶然发现此问题或在某种意义上关心此主题的任何人所感兴趣的:我发现了该工作可用工具的当前状态非常出色的文章]

4
何时使用龙卷风,何时使用Twisted / Cyclone / GEvent /其他[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 以下哪个框架/库是构建现代多用户Web应用程序的最佳选择?我很想拥有一个异步Web服务器,这将使我可以轻松扩展。哪种解决方案将提供最佳的性能 / 可伸缩性 / 最有用的框架(就易于使用和易于开发而言)? 如果它将提供良好的功能(websockets,rpc,流式传输等),那就太好了。 每个解决方案的优缺点是什么?

2
Twisted中Select / Poll与Epoll反应器的警告
我已经阅读和体验过的所有内容(基于Tornado的应用程序)使我相信ePoll可以自然替代基于Select和Poll的网络,尤其是Twisted。这让我感到偏执,对于一个更好的技术或方法学来说,这是很罕见的,而没有价格。 阅读epoll与替代方案之间的几十个比较结果,可以看出epoll显然是速度和可伸缩性的拥护者,特别是它以线性方式扩展,这太棒了。也就是说,关于处理器和内存利用率,epoll仍然是冠军吗?

2
Python扭曲:从哪里开始
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在尝试开始学习如何创建套接字服务器。我想添加一些有用的功能(例如auth,也许还有其他一些功能)。也许有人可以给我指出一个很好的教程,这将帮助我入门(+也许还有其他一些想法)
85 python  twisted 

2
Twisted有什么好玩的?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我越来越多地听到,与之相比,Python的Twisted框架和其他框架显得苍白。 任何人都可以对此有所了解,并可以将Twisted与其他网络编程框架进行比较。

6
线程与异步
我一直在阅读这篇非常好的文章,以了解编程的线程模型与异步模型。http://krondo.com/blog/?p=1209 但是,本文提到以下几点。 只要有I / O,异步程序就会在任务之间切换,从而胜过同步程序。 线程由操作系统管理。 我记得曾经读过线程是由操作系统通过在Ready-Queue和Waiting-Queue(以及其他队列)之间移动TCB来管理的。在这种情况下,线程也不会浪费时间等待它们? 鉴于上述情况,异步程序比线程程序有什么优势?

3
事件驱动模型和反应堆模式之间有什么区别?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 2年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 摘自Wikipedia Reactor Pattern文章: 反应堆设计模式是一种事件处理模式,用于处理通过一个或多个输入同时交付给服务处理程序的服务请求。 它命名了几个例子,例如nodejs,twisted,eventmachine 但是我了解到上面是流行的事件驱动框架,因此使它们也成为反应堆模式框架吗? 如何区分这两者?还是一样?

3
为什么尝试使用此代码在TLS上运行TLS时握手失败?
我尝试实现一种协议,该协议可以twisted.protocols.tls使用内存在BIO上与OpenSSL的接口,从而可以使用TLS在TLS上运行TLS 。 我将其实现为协议包装,它看起来像是常规的TCP传输,但是它具有startTLS和stopTLS方法分别用于添加和删除TLS层。这对于TLS的第一层工作正常。如果我在“本机” Twisted TLS传输上运行它,它也可以正常工作。但是,如果我尝试使用startTLS此包装器提供的方法添加第二个TLS层,则会立即出现握手错误,并且连接最终将处于未知的不可用状态。 包装程序和使它工作的两个助手如下所示: from twisted.python.components import proxyForInterface from twisted.internet.error import ConnectionDone from twisted.internet.interfaces import ITCPTransport, IProtocol from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol from twisted.protocols.policies import ProtocolWrapper, WrappingFactory class TransportWithoutDisconnection(proxyForInterface(ITCPTransport)): """ A proxy for a normal transport that disables actually closing the connection. This is necessary so that when …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.