【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秒にして無限ループをすれば、そこでタイムアウトのエラーを起こすことができる。
コメント