ホームページ > バックエンド開発 > PHPチュートリアル > HTTP 応答を送信した後も PHP の実行を継続するにはどうすればよいですか?

HTTP 応答を送信した後も PHP の実行を継続するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-12 13:10:02
オリジナル
664 人が閲覧しました

How Can I Keep PHP Execution Running After Sending an HTTP Response?

mod_php による HTTP 応答後の PHP 実行の継続

前のタイムアウトにより呼び出し側アプリケーションによって PHP 実行が終了される問題を解決するにはスクリプトは重要な操作を完了でき、PHP スクリプト自体内の特定のテクニックを利用できます。

Response-Abort-Resume メソッド

提供されたコード スニペットは次のものを利用します。アプローチ:

  1. 出力バッファをクリアし、「Connection: close」ヘッダーを設定して HTTP 応答を終了します。
  2. 「ignore_user_abort」を有効にして、クライアントによる PHP の実行の中断を防ぎます。 .
  3. 新しい出力バッファを開始します。
  4. 必要なメッセージをブラウザにエコーします。
  5. 出力バッファのサイズを取得し、「Content-Length」ヘッダーをブラウザに応答サイズを通知します。
  6. 両方の出力バッファをフラッシュして、応答をクライアントに送信します。
  7. セッションを閉じて、PHP によって保持されているリソースを解放します。
  8. 追加の実行

実装の詳細

「ob_end_flush()」と「flush()」の両方の機能に注意することが重要です。応答をクライアントに送信するには、順番に呼び出す必要があります。さらに、一部のユーザーは、PHP のセッション管理リソースを閉じる「session_write_close()」を追加することで結果が改善されたと報告しています。

このメソッドを実装することで、PHP スクリプトは待機中のアプリケーションに HTTP 応答を迅速にディスパッチし、重要な操作の実行を継続できます。早期終了の問題に直面することなく。

以上がHTTP 応答を送信した後も PHP の実行を継続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート