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

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

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

Конфигурация мониторинга

Конфигурационный файл config/process.php содержит настройки monitor


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.