0

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 methodjob_type' for main:Object (NoMethodError)

また、ターミナル経由で cron ジョブを手動で実行しようとしたところ、rvm も正しく切り替わっていることに気付きました。私も設定してみました

env "GEM_HOME", ENV["GEM_HOME"]

しかし、代わりにエラーが/path/to/app/config/schedule.rb:2:in <top (required)>': undefined methodenv' for main:Object (NoMethodError)に変更されました

何か案は?

4

1 に答える 1

0

ラッパーを使用: https://rvm.io/integration/cron/#direct

以下を使用して、より多くのラッパーを作成できます。

rvm wrapper create 1.9.3@my-project my-project bundle

そして、次のように使用します。

/path/to/rvm/bin/my-project_bundle ...
于 2013-03-26T15:31:58.020 に答える