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

HTTP 応答を送信した後、PHP スクリプトの実行を続行するにはどうすればよいですか?

DDD
リリース: 2024-12-14 03:44:15
オリジナル
740 人が閲覧しました

How Can I Continue PHP Script Execution After Sending an HTTP Response?

応答送信後の PHP 実行の継続

PHP スクリプトが受信メッセージを受信し、それを処理し、応答を送信するシナリオでは、要求側サーバーでは、最初の応答を送信した後も PHP スクリプトの実行を継続する必要があります。通常、サーバーは HTTP 200 応答の受信時にメッセージを配信済みとしてマークするため、これは困難になります。

データベース ストレージと Cron ジョブを回避する

メッセージをデータベースを使用し、cron ジョブに依存する場合、より即時の解決策があります。これには、HTTP 200 応答の送信と、PHP スクリプトの実行の続行が含まれます。

PHP スクリプトの実装

このソリューションを実装するには、PHP スクリプトで次の手順に従います。

ignore_user_abort(true); // Not required but can prevent premature termination
set_time_limit(0);

ob_start();
// Perform initial processing here
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); // Required for PHP-FPM (PHP > 5.3.3)

// Continue script execution
// ...

die(); // End the script especially when set_time_limit=0 is used and the task is complete
ログイン後にコピー

このコード シーケンスにより、スクリプトは応答を送信できますが、PHP プロセスは実行を続けます。必要に応じて、追加の処理やタスクを実行したり、別の応答を送信したりできます。最後に die() を呼び出してスクリプトを終了し、リソースを解放することが重要です。

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

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