2017-10-12 11 views
-1

スクリプトの実行を終了する前にreqeustに返信を送ることができるのだろうか?レスポンスを送信してスクリプトを実行し続ける - PHP

たとえば、サーバーB(server2server要求)に要求を送信しているサーバーAがあります。サーバーAに応答を送信する以外に、他のapiにいくつかのカール要求を行い、データをDBに保存する必要があります。 サーバAがこの追加のタスクを待つことを強制したくありません。接続がタイムアウトする可能性があるためです。

(Beanstalkdのような)キューを使用した回避策がありますが、私が記述した方法で可能かどうか、このアプローチを使用する危険性があるかどうかを知りたいと思います。

+0

はい、キューシステムを使用できます –

答えて

0

このようなことを試すことができます。

ignore_user_abort(true); 
set_time_limit(0); 

ob_start(); 
// do initial processing here 
echo $response; // send the response 
header('Connection: close'); 
header('Content-Length: '.ob_get_length()); 
ob_end_flush(); 
ob_flush(); 
flush(); 

// now the request is sent to the browser, but the script is still running 
// so, you can continue... 
関連する問題