#swoole プロセスを閉じた後、Server->reload メソッドを使用してプロセスを再起動できます。
サーバー->リロード方法の概要:
すべてのワーカー/タスク プロセスを再起動します。
bool Server->reload(bool $only_reload_taskworkrer = false)
$only_reload_taskworkrer タスク プロセスのみを再起動するかどうか
ビジーなバックエンド サーバーは常にリクエストを処理しています。管理者がプロセスを強制終了してサーバー プログラムを終了/再起動すると、コードは実行途中で終了します。
この場合、データの不整合が発生します。たとえば、取引システムでは、支払いロジックの次のセクションは出荷であり、支払いロジックの後にプロセスが終了すると想定されます。これにより、ユーザーは通貨を支払うだけで商品が届かなくなり、非常に深刻な結果が生じます。
Swoole は柔軟な終了/再起動メカニズムを提供しており、管理者は特定のシグナルをサーバーに送信するだけで、サーバーのワーカー プロセスを安全に終了できます。
1. SIGTERM: このシグナルをメイン プロセス/管理プロセスに送信すると、サーバーは安全に終了します
2. PHP コードでは、$serv->shutdown() を呼び出して、この操作を完了します
3. SIGUSR1: SIGUSR1 シグナルをメイン プロセス/管理プロセスに送信すると、すべてのワーカー プロセスがスムーズに再起動されます
4. PHP コードでは、$serv-> を呼び出すことができます;reload() を使用してこの操作を完了します。
5. リロードには保護メカニズムがあります。リロードが進行中の場合、新しい再起動信号を受信すると破棄されます。
6. Ifユーザー/グループが設定されている場合、ワーカー プロセスにはマスターにメッセージを送信する権限がない可能性があります。プロセスは情報を送信します。この場合、root アカウントを使用し、シェルで kill コマンドを実行して再起動する必要があります。
7. reload コマンドは、addProcess によって追加されたユーザー プロセスには無効です。
推奨学習: swoole ビデオ チュートリアル
以上がswooleプロセスを閉じた後に再起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。