我使用mod_wsgi在Apache上運行Django應用程序。升級過程中是否有停機時間?重新加載mod_wsgi守護進程時的停機時間?
Mod_wsgi在守護進程模式下運行,因此我可以通過觸摸.wsgi腳本文件來重新加載我的代碼,如「ReloadingSourceCode」文檔中所述:http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode。據推測,該重新加載需要一些非零時間。如果在重新加載期間發出請求,會發生什麼情況? Apache將排隊請求,然後在wsgi守護進程準備好後完成它?
文檔包括以下語句:
所以,如果你在守護模式下使用Django和需要改變你的「settings.py」文件,一旦你已經完成了必要的改變,也碰包含WSGI應用程序入口點的腳本文件。完成之後,在下一個請求過程中將重新啓動並重新加載Django應用程序。
對我而言,這表明Apache會優雅地處理每個請求,但我想我會要求確定。我的應用並不重要(有點宕機不會造成災難性的),所以問題主要是學術問題。
謝謝。
這額外的背景資料非常棒。我只想到了新的要求,而不是長期運行的要求,但是你所描述的內容是非常有意義的。謝謝。 – AndrewF 2010-09-10 11:30:45
FWIW,mod_wsgi 4.0在可用時將開始引入一些稍微優雅的重新加載選項。 – 2012-01-14 01:14:07