プロセス監視

Webmanには monitor 監視プロセスが付属しており、以下の2つの機能をサポートしています。

  1. ファイルの更新を監視し、新しいビジネスコードを自動的に再読み込みします(主に開発時に使用します)。
  2. すべてのプロセスのメモリ使用量を監視し、あるプロセスのメモリ使用量が php.ini に設定された memory_limit 制限を超えそうな場合、そのプロセスを自動的に安全に再起動します(ビジネスには影響しません)。

監視設定

設定ファイル 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 は更新を監視するディレクトリを設定します(監視ディレクトリのファイルが多すぎると適切ではありません)。
monitorExtensionsmonitorDir ディレクトリ内のどのファイル拡張子を監視すべきかを設定します。
options.enable_file_monitor の値が true の場合、ファイル更新監視が有効になります(Linuxシステムでデバッグモードで実行する場合、デフォルトでファイル監視が有効になります)。
options.enable_memory_monitor の値が true の場合、メモリ使用量監視が有効になります(メモリ使用量監視はWindowsシステムではサポートしていません)。

ヒント
Windowsシステムでは、windows.bat または php windows.php を実行する必要があり、その時にファイル更新監視が有効になります。