Monitoramento de Processos

O Webman possui um processo de monitoramento chamado monitor, que suporta duas funcionalidades:

  1. Monitorar atualizações de arquivos e recarregar automaticamente o novo código de negócio (geralmente usado durante o desenvolvimento).
  2. Monitorar o consumo de memória de todos os processos; se algum processo estiver prestes a exceder o limite memory_limit definido no php.ini, o processo será reiniciado de maneira segura (sem afetar os negócios).

Configuração de Monitoramento

As configurações estão no arquivo config/process.php na seção monitor.


global $argv;

return [
    // Detecção de atualização de arquivo e recarregamento automático
    'monitor' => [
        'handler' => process\Monitor::class,
        'reloadable' => false,
        'constructor' => [
            // Monitorar esses diretórios
            'monitorDir' => array_merge([    // Quais diretórios devem ser monitorados
                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')),
            // Arquivos com essas extensões serão monitorados
            'monitorExtensions' => [
                'php', 'html', 'htm', 'env'
            ],
            'options' => [
                'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // Se o monitoramento de arquivos está ativado
                'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',                      // Se o monitoramento de memória está ativado
            ]
        ]
    ]
];

monitorDir é usado para configurar quais diretórios devem ser monitorados (não é recomendável monitorar muitos arquivos em um diretório).
monitorExtensions é usado para configurar quais sufixos de arquivos no diretório monitorDir devem ser monitorados.
Quando o valor de options.enable_file_monitor é true, o monitoramento de atualizações de arquivos é ativado (em sistemas Linux, executar em modo debug ativa o monitoramento de arquivos por padrão).
Quando o valor de options.enable_memory_monitor é true, o monitoramento do consumo de memória é ativado (o monitoramento de memória não é compatível com sistemas Windows).

Dica
Em sistemas Windows, o monitoramento de atualizações de arquivos só pode ser ativado ao executar windows.bat ou php windows.php.