ノンブロッキング モードとは、ソケット イベントを使用するメッセージング メカニズムを指し、サーバーとクライアント間の通信は非同期状態になります。
PHP がバックエンドプロセスとして長時間の処理を完了する必要がある場合、結果の戻りを判断せずにページリクエストに迅速に応答するために、次の措置を講じることができます。
1. FastCGI モードを使用している場合、fastcgi_finish_request() を使用するとセッションをすぐに終了できますが、PHP スレッドは引き続き実行されます。 リーリー この例の出力では、出力プログラムの開始後にセッションが戻ることがわかります。そのため、デバッグ出力ブラウザーはセッションを受信できませんが、log.txt ファイルは 3 つの完了時間を完全に受信できます。
2. fsockopen と cUrl のノンブロッキング モードを使用して別の URL をリクエストします
リーリー
cURL でcurl_multi_* 関数を使用して非同期リクエストを送信します
3. Gearman と Swoole 拡張機能を使用する Gearman は、大量の非同期タスクを処理できる PHP 拡張機能を備えた分散型非同期処理フレームワークです。 Swooleは非同期メソッドが豊富で使いやすいので最近とても人気があります。 (Chenyuan からのメモ: PHP を再定義し、NodeJS を完全に破壊すると主張しています。Swoole ツールは優れていますが、拡張機能自体は NodeJS に匹敵しないと感じます)
この方法は、トラフィックの多い一般的なアーキテクチャでは非常に一般的です
リーリー
6. グリンゴの究極の動きがわかりません。phpでネイティブにサポートされています。
http://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html
。
リーリー
上記の内容は編集者が紹介したPHPのノンブロッキングモードですので、お役に立てれば幸いです。