PHP で最大実行時間をセットしたり確認したりする方法
PHP でタイムアウトまでの時間をセットしたり確認したり方法についてです。
タイムアウトまでの時間をセットする
セットする方については 2 通りの方法があります。
ひとつめは専用の set_time_limit()
を使う方法、もうひとつは汎用の ini_set()
を使う方法です。
// 1 つめ
// タイムアウトまでの時間を設定する
// この場合は 600 秒
set_time_limit(600);
// 2 つめ
// タイムアウトまでの時間を設定する
// この場合は 300 秒
ini_set('max_execution_time', 300);
いずれも数字の単位は「秒」です。
注意が必要なのは、この関数は「処理の開始からタイムアウトまでのトータル実行時間」を変更するわけではなく、「関数が呼び出されたときから何秒後にタイムアウトさせるか」をセットするという点です。
つまり、 PHP の処理の開始から 30 秒経ったところで set_time_limit(10)
を呼ぶと、そのタイミングから 10 秒後(つまりトータルで 40 秒経過時点)にタイムアウト処理が起こります。。
タイムアウトまでの時間を確認する
こちらはセットする方とはちがい ini_get()
の一択です。
set_time_limit()
と対になる get_time_limit()
という関数がありそうに思えますがありません。
// 設定されたタイムアウト時間を確認する
$ttl = ini_get('max_execution_time'); // => 60 など
以上です。