Codeigniterを使っているときにCronで実行したくなることがあります。
今回はCodeigniter3をCronで動かす簡単な方法を紹介します。
目次
今回使うCodeigniterのバージョン
Codeigniter 3.16
設定方法
コード
まずはコントローラを作成します。
Sampleコントローラを作り、sample1()関数を作りましょう。
sample1()内でログファイルにデータを書き出します。
※ログを書き出すにはconfig.phpのlog_thresholdを設定する必要があります。
class Sample extends CI_Controller { public function sample1(){ //ログファイルに書き出す log_message('debug', 'test'); } }
Cronの設定
続いてCronの設定を行います。
Cronで実行するには下記のように記述します。
分 時 日 月 曜日 php Codeigniterのindex.phpのパス コントローラ メソッド
今回は、毎日0時0分にSampleコントローラのsample1()を実行するように記述してみます。
0 0 * * * php /codeigniter/path/index.php Sample sample1
これで、実行できるはずです。
※実行できない場合は、phpのパスを指定してみるなどしてください。
引数を設定する場合
今度はメソッドに引数を渡したい場合です。
コード
Sampleコントローラを作り、sample2($param)関数を作りましょう。
sample2()内でログファイルに$paramの内容を書き出します。
class Sample extends CI_Controller { public function sample2(param){ //ログファイルに書き出す log_message('debug', $param); } }
Cronの設定
続いてCronの設定を行います。
Cronで引数を渡して実行するには下記のように記述します。
分 時 日 月 曜日 php Codeigniterのindex.phpのパス コントローラ メソッド 引数
今回は、毎日0時0分にSampleコントローラのsample2()に100を渡して実行するように記述してみます。
0 0 * * * php /codeigniter/path/index.php Sample sample2 100
まとめ
いかがですか結構簡単に設定できたのではないでしょうか。
引数を渡してCronで実行する際の注意点ですが、紹介した方法だと引数は1つしか渡せませんでした。
現在複数渡す方法がないか確認中です。
コメント