2014年10月1日水曜日

Railsのcron管理 Gem wheneverの導入方法

Railsでcron管理に便利なgem wheneverの導入方法です。
公式のgitHubはこちら

gemのInstall

gemfileに以下を追加して、bundle installを実行
Gemfile
# cron
# https://github.com/javan/whenever
gem 'whenever', :require => false

設定ファイル(schedule.rb)の作成

projectのディレクトリに移動してから、設定ファイル生成コマンドを実行
$ cd /apps/[my-project]
$ wheneverize .
そうすると
./config/schedule.rb
が作成されます。

schedule.rbの作成の設定

呼び出し可能な job type

wheneverでは、下記の4つのjob typeをschedule.rbに設定することができます。
job type メソッド 使用例
bashコマンド command command “/usr/bin/some_great_command”
rakeタスク rake rake “some:great:rake:task”
Railsのメソッド runner runner “MyModel.some_method”
scriptファイル script script “script/my-script.sh”

時間の設定

3時間毎
every 3.hours do
  rake "my:rake:task"
end
毎日 AM4:30に実行
every 1.day, :at => '4:30 am' do
  rake "my:rake:task"
end
1時間毎に実行
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
  runner "SomeModel.ladeeda"
end
日曜日pm12時に実行
every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday
  runner "Task.do_something_great"
end
27~31日の00:00に実行
every '0 0 27-31 * *' do
  command "echo 'you can use raw cron syntax too'"
end
このcron(分,時,日,月,曜日)の書き方が慣れているので普段はこれを使っています。

crontabへの反映,削除

上記で設定した内容をcrontabへ反映したり、削除させるための、下記コマンドが用意されています。

crontabへの追加

whenever -w

crontabからの削除

whenever -c

0 件のコメント:

コメントを投稿

statistics

Arsip