我正在用mod _
perl開發一個應用程序,並且每次更改代碼時重新啓動服務器都是一個巨大的拖動。我想仍然使用mod _
perl進行開發,因爲這是我計劃用於實時服務器的。我沒有看到關於如何做到這一點的文檔中的任何內容。如何讓mod_perl在更改時重新加載源文件?
想法?
我正在用mod _
perl開發一個應用程序,並且每次更改代碼時重新啓動服務器都是一個巨大的拖動。我想仍然使用mod _
perl進行開發,因爲這是我計劃用於實時服務器的。我沒有看到關於如何做到這一點的文檔中的任何內容。如何讓mod_perl在更改時重新加載源文件?
想法?
我認爲Apache2 :: Reload會在某種程度上實現您要找的東西。但是,請記住在您準備將應用投入生產後刪除所有此實現。
監視器在%INC所有模塊
處監視並請求的處理開始重新放入%INC的所有模塊,只需添加以下配置到你的httpd.conf:
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
當使用連接過濾器和協議模塊時,應在預連接階段調用Apache2 :: Reload:
PerlPreConnectionHandler Apache2::Reload
個註冊模塊隱含
重加載已經與Apache2的::刷新註冊模塊,添加以下到httpd.conf:
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
# ReloadAll defaults to On
那麼任何模塊與行:
use Apache2::Reload;
當它們改變時將被重新加載。
查詢信息this documentation page。希望這可以幫助。
我用這個解決方案,從佩蘭哈金斯通過PerlMonks:
設置MaxRequestsPerChild爲1,然後加載任何可能改變模塊的孩子,不是父(顯然僅用於開發環境)。每個請求都會碰到新的子服務器,這會重新加載所有潛在更改的模塊。
從 「A better way to see module changes in a running web server」