Rails gem:javan每当失败

时间:2013-08-26 15:20:17

标签: ruby-on-rails gem whenever

尝试设置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>'

所以,只是想知道我是否安装了错误的版本,或者调度文件的格式是否影响了它。

由于

2 个答案:

答案 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,因为它为生产环境生成了条目,但我在暂存时尝试了这个。