尝试设置javan每当宝石。
安装了0.8.4版本。
schedule.rb看起来像这样:
if Rails.env == 'production'
set :output, "#{::Rails.root.to_s}/tmp/cron.log"
every '*/1 * * * *' do
command "bundle exec rake ts:reindex RAILS_ENV=production"
end
end
当我做“每当'我明白了:
/home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `eval': uninitialized constant Whenever::JobList::Rails (NameError)
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `eval'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `initialize'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever.rb:15:in `new'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever.rb:15:in `cron'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever/command_line.rb:41:in `run'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/lib/whenever/command_line.rb:8:in `execute'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/gems/whenever-0.6.8/bin/whenever:38:in `<top (required)>'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/bin/whenever:23:in `load'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/bin/whenever:23:in `<main>'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `eval'
from /home/slagrz/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `<main>'
所以,只是想知道我是否安装了错误的版本,或者调度文件的格式是否影响了它。
由于
答案 0 :(得分:0)
在进一步调查中,我注释了以下行,现在从命令行开始工作。
#if Rails.env == 'production'
# set :output, "#{::Rails.root.to_s}/tmp/cron.log"
every '*/1 * * * *' do
command "bundle exec rake ts:reindex RAILS_ENV=production"
end
#end
我认为这最初是为了与capistrano一起使用..也许吧? 感谢
答案 1 :(得分:0)
我的rails 4.1应用程序中出现了相同的错误,代码如下:
every 1.day, :at => '8:30 am' do
rake 'update_hotels', environment: Rails.env
end
我尝试使用when命令(每当--update-crontab)更新crontab并得到错误。
我设法通过删除环境部分(环境:Rails.env)来实现它。
但是我必须手动更新crontab,因为它为生产环境生成了条目,但我在暂存时尝试了这个。