ハッキングバカ

プログラミングに関するメモ

whenever で cron を設定する[Rails]

環境 Ubuntu 16.04, Rails 5.2.0, Ruby 2.5.1

cron で定期的なバッチ処理を行う場合の設定。
まずは Gemfile に whenever を追加。

# Gemfile
gem 'whenever', '0.10.0', :require => false

インストール

$ bundle update

設定ファイルの生成

$ wheneverize .

config/schedule.rb が生成されるので、そこにスケジュールを記入する。
ここでは本番環境で毎日0:00にヘルパーメソッドを実行することにする。

# config/schedule.rb
env :PATH, ENV['PATH']
set :environment,  "production"
every 1.day, :at => '0:00 am' do
  runner "ExamplesHelper.example_batch"
end

以下のコマンドで反映。

$ whenever --update-crontab

以下のコマンドで設定を確認できるが、元の cron の見方を知っていないと難しい。

$ whenever

参考: Railsで定期的にバッチ回す「Whenever」