2013-02-11 59 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.