當然這將是緩慢的重新加載,它必須再次不加載所有的應用程序代碼只是一個文件。 Django不是PHP,所以不要指望它的工作原理是一樣的。
如果你真的想給Django的每個請求重新加載不管,然後使用CGI和CGI/WSGI橋。儘管CGI本身增加了額外的開銷,但它仍然會很慢。
使用代碼監視器,其使用UNIX時,或者,如果使用的是Windows,是最好的折衷進行守護模式下工作的阿帕奇/ mod_wsgi的方法。也就是說,它每秒檢查一次代碼文件,它是被更改的應用程序的一部分,然後才重新啓動該進程。運行服務器本身也使用內存中的這種第二輪詢方法。
使用這種投票方式也引入一個第二個窗口已檢測代碼重載的要求之前,你可以提出請求。大多數人並不那麼快從保存文件到在瀏覽器中重新加載,因此不會注意到。
在Apache/mod_wsgi 3.0中,有一些機制可以允許人們實現替代代碼重新載入器,通過在請求開始時安排對已修改代碼的檢查來消除該窗口,但這會影響每個請求的表現。對於輪詢方法,它在後臺運行,因此通常不會對請求造成任何性能影響。
即使在使用最新版本的Apache/mod_wsgi中,也可以通過使用嵌入模式並將Apache MaxRequestsPerChild設置爲1來做同樣的事情,但這也會影響服務靜態文件的性能。
總之,試圖迫使每個請求重新加載是不要去關於它的最佳途徑,當然不會排除使用脂肪Python的Web應用程序,如Django的產生的負載延遲。
'./manage.py runfcgi'也支持maxrequests參數,它可以設置爲1以強制重新加載。 http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/ – 2009-09-26 04:06:41