「whenever」があれば、Railsの定期実行バッチをさくっと作ることができます。
そんな便利な「whenever」について紹介していきたいと思います。
<スポンサードリンク>
Contents
gitHub
使い方
1. Gemファイルに「whenever」を追加
gem 'whenever', :require => false
2. bundle installを実行
% bundle install
3. バッチの設定ファイル作成のコマンド実行
成功すると、定期実行バッチ用の設定ファイルが作成され、「wheneverized!」というコメントが表示されます。
% bundle exec wheneverize [add] writing `./config/schedule.rb' [done] wheneverized!
4. 定期実行の設定ファイルのデフォルトで作成されるので、このファイルを修正していきます。
% cat config/schedule.rb # Use this file to easily define all of your cron jobs. # # It's helpful, but not entirely necessary to understand cron before proceeding. # http://en.wikipedia.org/wiki/Cron # Example: # # set :output, "/path/to/my/cron_log.log" # # every 2.hours do # command "/usr/bin/some_great_command" # runner "MyModel.some_method" # rake "some:great:rake:task" # end # # every 4.days do # runner "AnotherModel.prune_old_records" # end # Learn more: http://github.com/javan/whenever
設定できるjobtypeは、下記の4種類です。
・command
・rake
・runner
・script
この4種類のjobを好きな時間に実行するよう設定できます。
5. cronに設定を登録
wheneverでの定期実行タスクは、config/schedule.rbに登録した内容をcronという定期実行スケジュラーに、最終的に登録して実行されます。
config/scedule.rbに登録したタスクのcronへの反映は下記のコマンド実施できます。
% whenever -i
or
% whenever --update-crontab
設定した内容は、下記のコマンドで確認できます。
% whenevet -h
関連
Railsの環境変数管理gem、dotenvの使い方徹底解説
<スポンサードリンク>