Мониторинг процессов

Webman по умолчанию включает в себя процесс мониторинга, который поддерживает две функции:

  1. Мониторинг обновления файлов и автоматическая перезагрузка нового бизнес-кода (обычно используется во время разработки).
  2. Мониторинг всех процессов, занимающих оперативную память, и автоматическая безопасная перезагрузка процесса, если оперативная память этого процесса почти достигает ограничения, указанного в php.ini в memory_limit (не влияет на бизнес-процессы).

Настройка мониторинга

Настройки мониторинга находятся в файле config/process.php:

global $argv;

return [
    // Обнаружение обновлений файла и автоматическая перезагрузка
    'monitor' => [
        'handler' => process\Monitor::class,
        'reloadable' => false,
        'constructor' => [
            // Мониторинг в этих каталогах
            'monitorDir' => array_merge([    // Каталоги, файлы в которых должны быть отслежены
                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')),
            // Файлы с этими суффиксами будут отслеживаться
            'monitorExtensions' => [
                'php', 'html', 'htm', 'env'
            ],
            'options' => [
                'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // Включить мониторинг файлов
                'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',                      // Включить мониторинг памяти
            ]
        ]
    ]
];

monitorDir используется для настройки мониторинга обновлений в определенных каталогах (количество файлов в отслеживаемых каталогах не должно быть слишком большим).
monitorExtensions используется для настройки отслеживания файлов с определенными суффиксами в каталоге monitorDir.
Когда options.enable_file_monitor имеет значение true, происходит мониторинг обновления файлов (по умолчанию в режиме отладки под linux системами мониторинг обновления файлов включен).
Когда options.enable_memory_monitor имеет значение true, происходит мониторинг использования оперативной памяти (мониторинг использования оперативной памяти не поддерживается в системах Windows).

Примечание
В системах Windows мониторинг обновления файлов происходит только при запуске windows.bat или php windows.php.