【Rails】wheneverというgemで定期実行バッチを作る

「whenever」があれば、Railsの定期実行バッチをさくっと作ることができます。

そんな便利な「whenever」について紹介していきたいと思います。

<スポンサードリンク>

gitHub

whenever

使い方

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の使い方徹底解説

Ruby on Rails データベース構築設定まとめ

<スポンサードリンク>


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA