Giám sát tiến trình
Webman đi kèm với một tiến trình giám sát tên là monitor, nó hỗ trợ hai chức năng
- Giám sát cập nhật tệp và tự động reload để tải lại mã kinh doanh mới (thường được sử dụng trong quá trình phát triển)
- Giám sát tất cả các tiến trình sử dụng bộ nhớ, nếu một tiến trình sử dụng bộ nhớ sắp vượt quá giới hạn
memory_limit
trongphp.ini
thì tự động khởi động lại tiến trình đó một cách an toàn (không ảnh hưởng đến kinh doanh)
Cấu hình giám sát
Tập tin cấu hình config/process.php
chứa cấu hình monitor
global $argv;
return [
// Phát hiện cập nhật tệp và tự động reload
'monitor' => [
'handler' => process\Monitor::class,
'reloadable' => false,
'constructor' => [
// Giám sát các thư mục này
'monitorDir' => array_merge([ // Các thư mục nào cần được giám sát
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')),
// Các tệp có hậu tố này sẽ được giám sát
'monitorExtensions' => [
'php', 'html', 'htm', 'env'
],
'options' => [
'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // Có bật giám sát tệp hay không
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/', // Có bật giám sát bộ nhớ hay không
]
]
]
];
monitorDir
được sử dụng để cấu hình những thư mục nào sẽ được giám sát cập nhật (không nên giám sát quá nhiều tệp trong các thư mục).
monitorExtensions
được sử dụng để cấu hình những hậu tố tệp nào trong thư mục monitorDir
cần được giám sát.
Khi giá trị của options.enable_file_monitor
là true
, thì sẽ bật giám sát cập nhật tệp (trong hệ thống linux, chạy ở chế độ debug sẽ bật giám sát tệp theo mặc định).
Khi giá trị của options.enable_memory_monitor
là true
, thì sẽ bật giám sát sử dụng bộ nhớ (giám sát sử dụng bộ nhớ không hỗ trợ hệ thống windows).
Mẹo
Trong hệ thống windows, khi cần chạywindows.bat
hoặcphp windows.php
thì mới có thể bật giám sát cập nhật tệp.