4

我有以下schedule.rb

every 1.minute do
  runner "User.persist_things"
end

但是查看我的log/cron.log文件,输出如下:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- bundler/setup (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /Users/felipeclopes/projects/example/config/boot.rb:6
    from script/rails:5:in `require'
    from script/rails:5

我正在使用带有 ruby​​ 的 RVM,当前版本是:

$ ruby --version
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin10.8.0]

所以似乎 cron 作业正在加载不正确的 ruby​​ 版本,但我不知道如何解决这个问题。你能帮我弄清楚吗?

4

3 回答 3

5

无论何时和 rvm 集成存在一个已知问题。我建议您按照 gem 页面上的说明进行操作: RVM 集成

另请参阅:每当与 rvm 相关的问题

于 2013-10-09T22:12:54.007 回答
0

如果是这种情况,您应该在 config/deploy.rb 中使用它来制作与 capistrano 一起使用的内容:

require 'whenever/capistrano'
...
set :whenever_command, 'bundle exec whenever'
于 2013-10-14T10:48:27.520 回答
0

您可以将 RVENV 切换到更清洁的东西,例如 rbenv + rbenv-binstubs

于 2013-10-10T12:33:00.897 回答