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

  1. 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)
  2. 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 trong php.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_monitortrue, 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_monitortrue, 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ạy windows.bat hoặc php windows.php thì mới có thể bật giám sát cập nhật tệp.