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し直す必要がある。

オフィシャルサイトにあるコードだったのである程度プルーフされているかと思いきや、思わぬ落とし穴だった。

Something to say?