swoole バージョンは度重なるアップデートにより安定しており、Alibaba、Tencent、YY などの大手企業でも利用されており、ゲームサークルの友人も多く利用しています。質問: コードが更新されるたびに、サービスを停止して再起動してコードを更新する必要がありますが、このアプローチは比較的大雑把です。
実際、swoole はリロード機能を提供し、コードのホット アップデートを完全にサポートしています。
swoole のリロードを紹介する前に、ファイルの変更直後に Web メソッドがどのように有効になるかについて簡単に説明しましょう:
いくつかの概念: (推奨学習: swoole ビデオチュートリアル )
1) sapi: 単純に、PHP エンジンの外部への統一インターフェイスとして理解でき、PHP が外部プログラムと対話できるようになります。
2) PHP のライフサイクルにおける 4 つの主要な呼び出し: MINT -> RINT -> RSHUTDOWN -> MSHUTDOWN
3) fpm: fastcgi process manager
#その後、fpm メソッドのプロセスは次のようになります: fpm は sapi インターフェイスを介して php プロセスと対話します。fpm が開始されると、
最初のステップ: 各拡張機能の MINT メソッドが呼び出されて処理されます。一部のデータの初期化 (メモリ内に常駐)、
2 番目のステップ: リクエストごとに RINT が実行され、最初に 1 つのリクエストを初期化します、
3 番目のステップ: PHP スクリプトを実行します、
ステップ 4: RSHUTDOWN メソッドを実行します。
ステップ 5: fpm を停止する場合は、MSHUTDOWN が実行されます。
fpm は、手順 2 ~ 4 を繰り返し実行して各リクエストを処理します。
3 番目のステップでは、php スクリプトは動的に実行されます。php スクリプトは毎回実行する必要があり、各 php スクリプトには php ファイルをオペコード プロセスに変換する必要があるためです。 (比較的時間がかかります)opcache ツールの作成につながりました。
opcache: PHP で変換されたオペコード コード ツリーを共有メモリに直接保存して直接使用できるため、毎回 PHP をオペコードに変換するオーバーヘッドが削減されます。
opcache の問題: 彼の説明によると、php ファイルが変更されており、すぐに更新できませんでした。
opcache の解決策: 検出間隔を設定する構成があります。ファイルが長期間更新されているかどうかを確認するため、2 番目のステップで関連ファイルを再ロードする機会があります。
もちろん、fpm を直接再ロードして次の効果を達成することもできます。 PHP ホット アップデート (opcache 拡張機能。4 番目の手順で関連する opcode キャッシュをクリアできます)。
以上がSwooleをホットアップデートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。