Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 玩2.0非阻塞模型vs python tornado非阻塞模型_Django_Web Applications_Playframework 2.0_Jetty_Tornado - Fatal编程技术网

Django 玩2.0非阻塞模型vs python tornado非阻塞模型

Django 玩2.0非阻塞模型vs python tornado非阻塞模型,django,web-applications,playframework-2.0,jetty,tornado,Django,Web Applications,Playframework 2.0,Jetty,Tornado,下面的讨论已经成功地说明了非阻塞web服务器对传统web应用程序没有任何好处 Play框架中存在,但它没有对web服务器提出任何特殊要求(它给我的印象是,任何tomcat或jetty都可以工作,这本身不支持非阻塞模型)。我的问题是:像Tomcat这样的传统web服务器如何使Play这样的非阻塞web框架受益?从Servlet API 3开始异步服务HTTP请求(当一个线程可以服务多个HTTP请求时)。Tomcat 7和Jetty 8支持Servlet API 3 在旧的Servlet2容器上运

下面的讨论已经成功地说明了非阻塞web服务器对传统web应用程序没有任何好处


Play框架中存在,但它没有对web服务器提出任何特殊要求(它给我的印象是,任何tomcat或jetty都可以工作,这本身不支持非阻塞模型)。我的问题是:像Tomcat这样的传统web服务器如何使Play这样的非阻塞web框架受益?

从Servlet API 3开始异步服务HTTP请求(当一个线程可以服务多个HTTP请求时)。Tomcat 7和Jetty 8支持Servlet API 3

在旧的Servlet2容器上运行Play/Akka应用程序并没有什么好处,因为请求不会在其整个生命周期中释放分配给它的线程。然而,即使在这种情况下,对于一些后台处理任务,异步特性和Akka参与者也很方便


Django实际上是非异步的。Tornado在内部是异步的,即它允许在单个线程中处理多个TCP连接,但是当使用
Tornado.wsgi
与Django进行互操作时,它为请求分配一个线程,在其中调用wsgi callable,并且该线程在整个生命周期内分配给该单个请求。WSGI类似于Servlet API 2。

从Servlet API 3开始异步服务HTTP请求(当一个线程可以服务多个HTTP请求时)。Tomcat 7和Jetty 8支持Servlet API 3

在旧的Servlet2容器上运行Play/Akka应用程序并没有什么好处,因为请求不会在其整个生命周期中释放分配给它的线程。然而,即使在这种情况下,对于一些后台处理任务,异步特性和Akka参与者也很方便

Django实际上是非异步的。Tornado在内部是异步的,即它允许在单个线程中处理多个TCP连接,但是当使用
Tornado.wsgi
与Django进行互操作时,它为请求分配一个线程,在其中调用wsgi callable,并且该线程在整个生命周期内分配给该单个请求。WSGI类似于ServletAPI 2

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