新人Railsエンジニアの備忘録

忘れやすい性格なので、ハマったところとか、日々学んだことをメモとして残します。他の方が参照したときに少しでも役立てれば、うれしいです。

【Rails4】wheneverで手動タスク実行に失敗する。

f:id:fairemygeneration:20181210142227j:plain:w300

rails でwheneverでタスクを定期的に実行させたかったので、実装しようとしたところ、タスクの実行に失敗し、対応したメモです。
当初、developmentの環境で動作させたかったので、実行環境を明示的に指定しなければ、すべての環境で動作すると思い、設定ファイルで環境を指定しない状態で、タスクを実行しようとしました。
ですが、wheneverはデフォルトではproductionで動作する仕様のようなので、環境を明示的に指定する必要がありました。
実行環境を確認するにはcrontab -lで確認※1できます。
※1 runner -e development
http://d.hatena.ne.jp/donbulinux/20150716/1437051191

$ crontab -l

  Begin Whenever generated tasks for: /Myapp/config/schedule.rb at: 2018-05-31 12:17:58 +0900
 30 13 * * * /bin/bash -l -c 'cd /Myapp && bundle exec bin/rails runner -e development '\''Test.hoge'\'' >> log/crontab.log 2>&1'

◎ ジョブ実行環境を指定
$ vi /config/schedule.rb

 set :environment, :production
 set :environment, :development