監(jiān)控進(jìn)程
webman自帶一個(gè)monitor監(jiān)控進(jìn)程,它支持兩個(gè)功能
- 監(jiān)控文件更新并自動(dòng)reload載入新的業(yè)務(wù)代碼(一般在開(kāi)發(fā)時(shí)使用)
- 監(jiān)控所有進(jìn)程占用內(nèi)存,如果某個(gè)進(jìn)程占用內(nèi)存即將超過(guò)
php.ini
中memory_limit
限制則自動(dòng)安全重啟該進(jìn)程(不影響業(yè)務(wù))
監(jiān)控配置
配置文件 config/process.php
中monitor
配置
global $argv;
return [
// File update detection and automatic reload
'monitor' => [
'handler' => process\Monitor::class,
'reloadable' => false,
'constructor' => [
// Monitor these directories
'monitorDir' => array_merge([ // 哪些目錄下的文件需要被監(jiān)控
app_path(),
config_path(),
base_path() . '/process',
base_path() . '/support',
base_path() . '/resource',
base_path() . '/.env',
], glob(base_path() . '/plugin/*/app'), glob(base_path() . '/plugin/*/config'), glob(base_path() . '/plugin/*/api')),
// Files with these suffixes will be monitored
'monitorExtensions' => [
'php', 'html', 'htm', 'env'
],
'options' => [
'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // 是否開(kāi)啟文件監(jiān)控
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/', // 是否開(kāi)啟內(nèi)存監(jiān)控
]
]
]
];
monitorDir
用來(lái)配置監(jiān)控哪些目錄的更新(監(jiān)控目錄的文件不宜過(guò)多)。
monitorExtensions
用來(lái)配置monitorDir
目錄里哪些文件后綴應(yīng)該被監(jiān)控。
options.enable_file_monitor
值為true
時(shí),則開(kāi)啟文件更新監(jiān)控(linux系統(tǒng)下以debug方式運(yùn)行默認(rèn)開(kāi)啟文件監(jiān)控)。
options.enable_memory_monitor
值為true
時(shí),則開(kāi)啟內(nèi)存占用監(jiān)控(內(nèi)存占用監(jiān)控不支持windows系統(tǒng))。
提示
windows系統(tǒng)下當(dāng)需要運(yùn)行windows.bat
或者php windows.php
時(shí)才能開(kāi)啟文件更新監(jiān)控。