Monitoreo de procesos

Webman viene con un proceso de monitoreo llamado monitor, que admite dos funciones:

  1. Monitorea las actualizaciones de archivos y recarga automáticamente el nuevo código de negocio (generalmente utilizado durante el desarrollo).
  2. Monitorea el uso de memoria de todos los procesos; si un proceso está a punto de superar el límite de memory_limit en php.ini, reiniciará automáticamente el proceso de manera segura (sin afectar el negocio).

Configuración de monitoreo

La configuración se encuentra en el archivo config/process.php en la sección monitor.


global $argv;

return [
    // Detección de actualizaciones de archivos y recarga automática
    'monitor' => [
        'handler' => process\Monitor::class,
        'reloadable' => false,
        'constructor' => [
            // Monitorear estos directorios
            'monitorDir' => array_merge([    // Qué directorios deben ser monitoreados
                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')),
            // Los archivos con estos sufijos serán monitoreados
            'monitorExtensions' => [
                'php', 'html', 'htm', 'env'
            ],
            'options' => [
                'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // Si se habilita el monitoreo de archivos
                'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',                      // Si se habilita el monitoreo de memoria
            ]
        ]
    ]
];

monitorDir se utiliza para configurar qué directorios se van a monitorear por actualizaciones (no se deben monitorear demasiados archivos en los directorios).
monitorExtensions se utiliza para configurar qué sufijos de archivos dentro del directorio monitorDir deben ser monitoreados.
El valor de options.enable_file_monitor debe ser true para habilitar el monitoreo de actualizaciones de archivos (en sistemas Linux, se habilita por defecto en modo de depuración).
El valor de options.enable_memory_monitor debe ser true para habilitar el monitoreo del uso de memoria (el monitoreo del uso de memoria no es compatible con sistemas Windows).

Sugerencia
En sistemas Windows, el monitoreo de actualizaciones de archivos solo se puede activar ejecutando windows.bat o php windows.php.