タイムアウト回避策
PHPでは標準で以下のような場合、処理を中断します。
- ブラウザとの接続が切れた場合(ブラウザの「中止」ボタンが押された場合や閉じられた場合)
- ブラウザからのリクエストがあってから、30秒以上経過
しかし、CSVファイルの吐き出しなどで
処理を中断させたくない場合があります。
そういう時は、php.iniやphpの関数の設定でタイムアウトを回避することが出来ます。
php.ini
//クライアント切断時に処理を実行するように指定 ignore_user_abort = On //スクリプトを強制終了させるまでの許容する最大時間(単位:秒) max_execution_time = 86400
php内
//クライアント切断時に処理を実行するように指定 ignore_user_abort(true); //スクリプトを強制終了させるまでの許容する最大時間(単位:秒) set_time_limit(86400);
max_execution_time、set_time_limitを0にすると
時間制限を受けないということになります。
ただこれだと、サーバーに負荷がかかったり
無限ループに陥っても止まらないなど発生するので、
きちんと秒数を指定した方がよさそうです。