1

尝试设置 javan 每当 gem。

安装 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>'

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

谢谢

4

2 回答 2

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 一起使用.. 也许?谢谢

于 2013-08-26T15:28:58.980 回答
0

对于以下代码,我在 rails 4.1 应用程序中遇到了同样的错误:

every 1.day, :at => '8:30 am' do
  rake 'update_hotels', environment: Rails.env
end

我尝试使用命令(无论何时 --update-crontab )更新 crontab 并得到错误。

我设法通过删除环境部分( environment: Rails.env )使其工作。

但是,我不得不手动更新 crontab,因为它为生产环境生成了条目,但我在登台时尝试了这个。

于 2017-04-16T06:44:08.707 回答