Sidekiq タスクのスケジュール設定を支援するために、Whenever gem を実装しようとしています。crontab を確認したところ、正しく更新されており、ターミナルでも正常に動作するたびに exec をバンドルしています。
これが私のschedule.rbです:
# set RAILS_ROOT
RAILS_ROOT = File.dirname(__FILE__) + '/..'
set :output, 'log/whenever.log'
set :job_template, "bash -l -i -c ':job'"
job_type :runner, "cd :path && bundle exec rails runner -e staging ':task' :output"
every 1.day, :at => '10:30 pm', :roles => [:app] do
runner "Backup.perform_async"
end
crontab を以下に示します。
bash -l -i -c 'cd /path/to/app && bundle exec rails runner -e staging '\''Backup.perform_async'\'' >> log/whenever.log 2>&1'
ただし、cron ジョブが呼び出されると、次のエラーが返されました。
/path/to/app/config/schedule.rb:8:in <top (required)>': undefined method
job_type' for main:Object (NoMethodError)
また、ターミナル経由で cron ジョブを手動で実行しようとしたところ、rvm も正しく切り替わっていることに気付きました。私も設定してみました
env "GEM_HOME", ENV["GEM_HOME"]
しかし、代わりにエラーが/path/to/app/config/schedule.rb:2:in <top (required)>': undefined method
env' for main:Object (NoMethodError)に変更されました
何か案は?