给读者的注意:我花了近5个小时来修复这个问题,并且阅读了几乎每一篇关于这个问题的StackOverflow帖子,看了每一段视频等等,所以请不要在没有具体答案或解释的情况下标记为重复。谢谢!
我试图在开发环境中使用‘using’gem执行一个简单的'puts‘语句,并将它输出到我的cron_log.log文件中。
1)当我将任务安排为每1分钟运行一次方法时,我会在我的cron_log文件中得到以下错误:
bundler: failed to load command: bin/rails (bin/rails)
Bundler::GemNotFound: Could not find activesupport-5.0.3 in any of the sources
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/spec_set.rb:87:in `block in materialize'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/spec_set.rb:81:in `map!'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/spec_set.rb:81:in `materialize'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/definition.rb:159:in `specs'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/definition.rb:218:in `specs_for'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/definition.rb:207:in `requested_specs'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:109:in `block in definition_method'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:21:in `setup'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler.rb:101:in `setup'
/Users/jessierichardson/.rvm/gems/ruby-2.2.1/gems/bundler-1.15.4/lib/bundler/setup.rb:19:in `<top (required)>'
/Users/jessierichardson/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Users/jessierichardson/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'我已经检查了我的Gemfile.lock和activesupport 5.0.3是在那里的所有它的荣耀。
这是我在schedule.rb中的设置
set :environment, "development"
set :output, 'log/cron_log.log'
def say_hi
puts "hello"
end
every 1.minute do
runner 'say_hi'
end(*请注意:我已经尝试过对每个预定任务进行rake、runner和命令,结果会抛出相同的错误)
当我从终端运行命令“任何时候”时,下面是我的输出:
* * * * * /bin/bash -l -c 'cd /Users/jessierichardson/Desktop/projects/Ruby/blog_testing && bundle exec bin/rails runner -e development '\''say_hi'\'' >> log/cron_log.log 2>&1'我正在使用Rails 5.0.3和Ruby2.2.1
发布于 2017-11-20 12:08:49
您只需将env PATH和GEM_PATH设置在schedule.rb中,例如:
env :PATH, ENV['PATH']
env :GEM_PATH, ENV['GEM_PATH']https://stackoverflow.com/questions/46084037
复制相似问题