2009年6月6日土曜日

max_execution_time

PHPのタイムアウトを決める際にphp.iniにmax_execution_timeがある。これがデフォルト値になって、PHPのタイムアウト判定を行う。ちなみにデフォルト設定は30秒になっている。0にすると無限。

PHPスクリプト内でset_time_limit()を使うことでデフォルト値を変えることも可能。

これら2つは、スクリプトの実行時間のみに反映されるものでシステムコール等の時間は含まれない。
30秒以上かかってたのに落ちない処理があったのになんで今回は落ちるんだ!というのは途中でシステムコールしたり、DBの読み書きがあったりでカウントされていない時間があるのかもしれないことに注意する必要がある。
簡単に言ってしまうと人間には計りにくい時間ってことか・・。

原因不明のエラーでループ文で止まる場合等は疑ってみるといいかも。

0 件のコメント: