Codeigniterでバッチ処理に役立つcron.php

Codeigniterでバッチ処理に役立つcron.php

PHPCodeigniterでバッチ処理に役立つcron.php

面倒だったので、curl コマンドを使って Web 経由で叩いていた一部のバッチ処理を、cron.php を使って動作させるようにしました。どちらにしても、シェルから実行させるのには変わりないのですが、リクエストのタイムアウトや、nginx, apache のリソースを考えると、php クライアントから直接実行できるに越したことはありません。cron.php の呼び出しは Codeigniter で作ったコントローラやメソッドを指定するだけなので、Web アプリ向けの処理がそのまま使えるメリットもあります。また、config などを環境ごとにディレクトリ分けしている場合、nginx や apache の環境変数に「production」や「staging」「development」などを持たせているケースもあると思いますが、cron.php を使う場合は export コマンドで env に設定しておけば大丈夫です。

cron.phpのダウンロード

現状、cron.php の最新版は 2013 年が最終更新ということで間が空いていますが、Codeigniter のバージョン 2 では問題なく動作を確認しています。Codeigniter も 2015 年にバージョン 3 が発表され間もなく 1 年が経過するので、バージョン 3 での動作確認もしておきたいところですが、まだバージョン 2 を使っているので、本体のバージョンアップを含めこれは今後の課題ということで。

さて、cron.php は以下からダウンロードができます。詳細は README.md を確認してみてください。

codeigniter-cli-bootstrap

cron.phpの使い方

基本的な使い方は以下の通り、Web からの呼び出しと同じくコントローラとメソッドをスラッシュで区切って --run に渡すだけです。ログの出力先なども選択できるので、バッチ運用も楽になると思います。また、環境変数は例えば ENVIRONMENT という変数を nginx や apache で使用している場合、cron.php の呼び出し前に export で ENVIRONMENT に必要な値を設定しておけば問題ありません。

$ export ENVIRONMENT=production

$ php cron.php --run=/controller/method

最終更新日:

関連記事

人気記事

新着情報