2013-02-11 57 views
0

以下讨论已经成功地说明了一个非阻塞的Web服务器对传统的Web应用程序不会有什么好处。play 2.0非阻塞模型vs python龙卷风非阻塞模型

What is the best way to run Django on Tornado Web Server to have async + django admin + django orm possibilities?

Django is not asynchronous, so running Django in Tornado will remove most of the performance benefits you might get from Tornado. 

存在着nonblocking model在游戏框架,但它不会对网络服务器的任何特殊要求(它给我的印象,只是任何Tomcat或码头会的工作,它不支持非阻塞模型本身)。我的问题是:像Tomcat这样的传统Web服务器如何能够像Play一样启用无阻塞的Web框架?

回答

3

HTTP请求(当一个线程可以服务于多个HTTP请求)is available从Servlet API中3的Tomcat 7和Jetty 8支持Servlet API开始的异步服务3.

有运行播放/阿卡没有太大的好处应用程序在旧的servlet 2容器上,因为请求不会释放为其整个生命周期分配的线程。但是,即使在这种情况下,异步功能和Akka actor也可以很方便地用于某些后台处理任务。

Django实际上是非异步的。 Tornado在内部是异步的,即它允许在单线程中处理多个TCP连接,但是当使用tornado.wsgi与Django进行互操作时,它会为请求分配一个线程,调用WSGI,并将此线程分配给此单个请求它的整个一生。 WSGI就像Servlet API 2.