wheneverのgemをinstall
wheneverによりcrontab(バッチ処理設定)を設定できるようになる。
config/schedule.rbファイル生成
このファイルに定期的に実行する頻度と、実行するファイルを記述する。
(どういったバッチがどういう周期でまわっているのか一目瞭然)
schedule.rb
set :output, 'log/crontab.log' ←ここにログを吐く
env :PATH, ENV['PATH']
every :day, :at => '2:30 am', :roles => [:app] do ←バッチ処理の時間設定
rake "test:sample" ←実行するrakeタスクの名前
end
rakeファイル作って、実行したいコードを書くだけ。
lib/task/test.rake
namespace :test do ←namespaceは必要なら入れるの
desc "説明文書いた" ←タスクの説明文
task :sample => :environment do ←sampleという名前つけている
実行したい処理
end
end
*処理を書くのにメソッドが必要なら、service.rbにメソッド書いてそれ使ったり。
*cronとはUNIX系のOS(Linuxとか)に入っているプログラムのひとつ。
事前に「いついつになったら、このプログラムを動かしてね」と指示を出しておくと、その時間になったときに指定しておいたプログラムを動かしてくれるやつです。
まだこれで終わりじゃない。指定した時間に動くように設定する。
最後に、cronに反映する際のコマンドを入力する必要があるねん。
$ bundle exec whenever --update-crontab
これで何もエラーでなければOKっす。
これで定期的にバッチを回せます。