7
10

More than 5 years have passed since last update.

Ruby バッチ処理の流れ

Last updated at Posted at 2018-09-08

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っす。
これで定期的にバッチを回せます。

参考:https://qiita.com/yumiyon/items/388fbb84450f49a6ab0d

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10