codeigniterでcron的なバッチを走らせるときのハマり所。CodeIgniter2.0.3で確認。
http://codeigniter.com/wiki/Cron_job_bootstrapper/この辺のcron.phpを持ってきて動かしたんだけど、–time-limitが効かない。300秒で勝手にとまる。
調べた結果、system/core/CodeIgniter.phpの途中に下記のコードが。
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0) { @set_time_limit(300); }
ということで、CodeIgniter本体が呼ばれる前にいくらset_time_limitしても無駄。呼び出されたあとのcontroller内でもう一度set_time_limitし直す必要がある。
オフィシャルサイトにあるコードだったのである程度プルーフされているかと思いきや、思わぬ落とし穴だった。