Surveillance des processus

Webman possède un processus de surveillance appelé monitor, qui prend en charge deux fonctionnalités :

  1. Surveiller les mises à jour des fichiers et recharger automatiquement le nouveau code métier (généralement utilisé en développement)
  2. Surveiller la consommation de mémoire de tous les processus, et si un processus dépasse la limite memory_limit dans php.ini, redémarrer automatiquement ce processus de manière sécurisée (sans affecter le service)

Configuration de la surveillance

Configuration du fichier config/process.php pour le paramètre monitor


global $argv;

return [
    // Détection de mise à jour de fichiers et rechargement automatique
    'monitor' => [
        'handler' => process\Monitor::class,
        'reloadable' => false,
        'constructor' => [
            // Surveiller ces répertoires
            'monitorDir' => array_merge([    // Quels répertoires doivent être surveillés
                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')),
            // Les fichiers avec ces suffixes seront surveillés
            'monitorExtensions' => [
                'php', 'html', 'htm', 'env'
            ],
            'options' => [
                'enable_file_monitor' => !in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/', // Activer la surveillance des fichiers
                'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',                      // Activer la surveillance de la mémoire
            ]
        ]
    ]
];

monitorDir est utilisé pour configurer quels répertoires doivent être surveillés pour les mises à jour (il est préférable de ne pas avoir trop de fichiers dans les répertoires surveillés).
monitorExtensions est utilisé pour configurer quels suffixes de fichiers dans le répertoire monitorDir doivent être surveillés.
Lorsque la valeur de options.enable_file_monitor est true, la surveillance des mises à jour de fichiers est activée (s'exécute par défaut en mode debug avec surveillance des fichiers sur les systèmes Linux).
Lorsque la valeur de options.enable_memory_monitor est true, la surveillance de la consommation de mémoire est activée (la surveillance de la mémoire n'est pas supportée sur les systèmes Windows).

Conseil
Sur les systèmes Windows, la surveillance des mises à jour de fichiers ne peut être activée qu'en exécutant windows.bat ou php windows.php.