国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

文件監(jiān)控組件

背景:

Workerman是常駐內(nèi)存運行的,常駐內(nèi)存可以避免重復讀取磁盤、重復解釋編譯PHP,以便達到最高性能。所以更改業(yè)務代碼后需要手動reload或者restart才能生效。

同時workerman提供一個監(jiān)控文件更新的服務,該服務檢測到有文件更新后會自動運行reload,從新載入PHP文件。開發(fā)者將其放入到項目中隨著項目啟動即可。

文件監(jiān)控服務下載地址:

1、無依賴版本:https://github.com/walkor/workerman-filemonitor

2、依賴inotify版本:https://github.com/walkor/workerman-filemonitor-inotify (需要安裝inotify擴展)

兩個版本區(qū)別:

地址1版本使用的是每秒輪詢文件更新時間的方法判斷文件是否更新,

地址2利用Linux內(nèi)核inotify機制,文件更新時系統(tǒng)會主動通知workerman。

一般使用第一個無依賴版本即可

使用方法

將Applications/FileMonitor目錄拷貝到你項目的Applications目錄下即可。

如果你的項目沒有Applications目錄,可以將Applications/FileMonitor/start.php文件拷貝到你的項目任意位置,在啟動腳本中require到啟動腳本中即可。

監(jiān)控組件默認監(jiān)控的是Applications目錄,如果需要更改,可以修改Applications/FileMonitor/start.php中的$monitor_dir變量,$monitor_dir的值建議是絕對路徑。

注意:

  • windows系統(tǒng)不支持reload,無法使用此監(jiān)控服務。
  • 只有在debug模式下才生效,daemon下不會執(zhí)行文件監(jiān)控(為何不支持daemon模式見下面說明)。
  • 只有在Worker::runAll運行后加載的文件才能熱更新,或者說只有在onXXX回調(diào)中加載的文件才能熱更新。

為何不支持daemon模式?

daemon模式一般為線上正式環(huán)境運行的模式。正式環(huán)境發(fā)布版本時,一般一次發(fā)布多個文件,文件之間也可能有依賴。由于多個文件同步到磁盤需要一定時間,會存在某個時刻磁盤上的文件不全的情況,如果這時候監(jiān)控到了文件更新并執(zhí)行了reload,則會有找不到文件導致致命錯誤的風險。

另外正式環(huán)境中有時候會在線定位bug,如果直接編輯代碼保存,就會立刻生效,有可能出現(xiàn)語法錯誤導致線上服務不可用。正確的方法應該是保存代碼后,通過php -l yourfile.php檢查下是否有語法錯誤,然后再reload熱更新代碼。

如果開發(fā)者確實需要daemon模式開啟文件監(jiān)控及自動更新,可以自行更改Applications/FileMonitor/start.php代碼,將Worker::$daemonize部分的判斷去掉即可。

編輯于2024-03-13 17:37:19 完善本頁 +發(fā)起討論
贊助商