2023/06/25 追記
Sidekiq 版書きました。
Railsで定期実行処理を書きたい時のためのメモ。cron を応用してくれる whenever を導入して設定する。
Gemfileに追記
gem "whenever"
インストール&設定ファイル生成
$ bundle install $ bundle exec wheneverize
設定ファイルで定期実行処理を書く
対象のTaskはすでに存在する前提
set :output, 'log/crontab.log' ENV.each { |k, v| env(k, v) } rails_env = ENV['RAILS_ENV'] || :development set :environment, :rails_env every '0 15 * * *' do rake 'carepi:leaveall' end
every '0 15 * * *'
でUTC時間15:00(= JST 0:00)に毎日実行になる。これはRailsが載ってるDockerコンテナさんがUTCで動いているためこうした。Docker側で設定すればいいが面倒。