是否可以在單獨的cherrypy web應用程序的單個模塊上使用python reload命令(或類似命令)?我有一個基於CherryPy的Web應用程序,經常處於持續使用狀態。我會不時做出一個隻影響一個模塊的「重要」變化。我希望能夠立即重新加載該模塊,而不會影響其他Web應用程序。毫無疑問,完全重啓是很快的,但仍然有幾秒鐘的停機時間,如果可能,我寧願避免。在cherrypy中重新加載單個模塊?
回答
重新加載模塊非常非常難以理智地完成。它會導致代碼中的陳舊對象具有無法查詢狀態和微妙的錯誤的可能性。這不是你想要做的事情。
真正的Web應用程序傾向於做的事情是讓服務器在其應用程序前保持活動狀態,例如使用mod_proxy的Apache來充當反向代理。你開始你的新應用服務器,改變你的反向代理的路由,然後殺掉舊的應用服務器。
沒有停機。沒有瘋狂的,不可撼動的代碼。
+1。我曾經走過這條路。 *保存完好無損。 – Carpetsmoker
http://tools.cherrypy.org/wiki/ModProxy是關於使用CherryPy和mod_proxy的一些信息。 (隨意使用nginx或其他任何東西,而不是你喜歡的。) –
我明白了。因此,我的應用程序服務器有兩個實例正在運行(至少在修改內容時)。我已經在mod_proxy中使用了apache,所以這完全可以通過爲應用服務器使用兩個不同的端口並在兩者之間切換來完成。不過,我想我會遇到同樣的問題,重啓apache來更改代理路由 - 當apache重新啓動以使用其他服務器/端口時,用戶沒有得到響應的危險。除非我可以進行代理路徑/路由的實時更新?嗯... – ibrewster
- 1. 重新加載Python模塊
- 2. 在運行時重新加載模塊
- 3. 重新加載模塊已導入到另一個模塊
- 4. 在cherrypy中是否存在自動重新加載
- 5. 重新加載自制模塊
- 6. 強制eclipse重新加載Python模塊
- 7. 如何重新加載此模塊?
- 8. 自動重新加載rails模塊
- 9. 刪除npm模塊「重新加載」
- 10. 如何重新加載python子模塊?
- 11. Modperl :: perlrun重新加載模塊
- 12. 重新加載joomla中只有一個模塊?
- 13. 重新加載/重新初始化/刷新CommonJS模塊
- 14. 重新加載commonJS模塊中的bx滑塊
- 15. 如何重新加載在其他模塊中導入的模塊
- 16. PureScript - 如何在psci中重新加載模塊?
- 17. 如何在IDLE中重新加載Python模塊?
- 18. 用Perl重新加載模塊並重新定義子例程
- 19. Rhomobile重新加載以前加載的模塊
- 20. 在mvc中重新加載模型
- 21. 在單個WPF線程中加載多個模塊
- 22. 用django和mod_wsgi爲每個請求重新加載Python模塊
- 23. 將重新加載Apache加載一個新安裝的php-xml模塊或者是需要重新啓動Apache
- 24. 在Lua中加載一個C模塊
- 25. 在Angularjs中加載模塊
- 26. 在Angular中加載模塊
- 27. 在Mojolicious中加載「模塊」
- 28. 單獨在HTML中重新加載div
- 29. 如何重新加載塊在Magento?
- 30. JBoss - 在運行時加載新模塊
http://stackoverflow.com/questions/6270395/detect-if-a-python-module-changes-and-then-reload –
@OmidRaha關閉,但沒有雪茄。這個問題與cherrypy無關。我知道如何重新加載一個模塊(請參閱我對python reload命令的參考),我正在尋找的是一種讓CherryPy(而不是我的代碼)重新加載我的模塊之一的方法。除非它像在我的代碼中調用重裝一樣簡單? – ibrewster