SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】わざとタイムアウトのエラーを発生させる方法

phpのタイムアウトについて書いたとおり、sleep()や、ネットワークの待ち、データベースの返答待ちなどではタイムアウトを起こすことはできない(Windows環境を除く)。

では、任意の時間でタイムアウトを発生させるには?

タイムアウト時間が30秒のとき、30秒間無限ループを続けるのは避けたい。負荷が高すぎる。30秒間CPU使用率100%など避けたい。

1秒間のCPU使用率100%ぐらいなら許容できる場合の方法。

ソース

//......
//いろいろの処理(略)
//......

// ここでタイムアウトを発生させたい
//タイムアウトを1秒にして、無限ループ
set_time_limit(1);
while (1) {}

結果

Fatal error: Maximum execution time of 1 second exceeded in xxxx.php on line xx

任意の箇所で、タイムアウト時間を1秒にして無限ループをすれば、そこでタイムアウトのエラーを起こすことができる。

関連するメモ

コメント