N2-Works
WEB企画・制作/システム開発 大阪拠点

Railsの定期バッチ実行

Linuxで定期的にバッチ処理を行うにはcrontabを設定すると思います。

railsにはcronに登録するために”whenever”というgemがあるようです。

使い方を忘れないようにメモっておきます。

まずは以下のコマンドでcron設定のためのスケジュールファイルを作成します。

./bin/bundle exec wheneverize .

【実行結果】
[add] writing `./config/schedule.rb'
[done] wheneverized!

次に作成されたschedule.rbを編集します。

config/schedule.rb

# 実行環境
set :environment, :development

# ログ出力
set :output, { :error => 'log/whenever.log', :standard => 'log/cron.log' }

# 15分間隔
every 15.minutes do
  runner "Tasks::クラス名.execute"
end

上記は開発環境で15分ごとに指定のタスクを実行するように設定しています。

次に以下のコマンドで実際にcrontabに設定を行います。

./bin/bundle exec whenever --update-crontab RAILS_ENV=development

【実行結果】
[write] crontab file updated

crontabコマンドで確認してみてください、スケジューリングされているはずです。

[ruby on rails]2016年10月05日 16時00分00秒

※1000文字以内で入力してください

captcha
TOP