我正在尝试whenever
在我的应用程序中使用 gem,但我无法在schedule.rb
.
抛出的错误是
/bin/bash: rake: command not found
我也在使用捆绑器,所以我所有的宝石都被冻结到应用程序中。
rake 在某个非典型的地方,比如 /usr/local/bin 吗?尝试将此添加到 schedule.rb:
env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
尝试使用“命令”而不是 rake。我的 rake 在 /usr/local/bin 中,我也不知道如何使它工作。所以这里是一个命令示例,而不是 schedule.rb:
every 5.minutes do
command "cd " + `pwd`.chomp + " && RAILS_ENV=#{environment} /usr/local/bin/rake rakefile:rakemethod"
end
请注意,您还必须在此示例中传入环境。我认为当您调用 schedule.rb 时,您只需使用 'whenever --update_crontab --set environment=beta' 即可。
我让 capistrano 使用when gem 中的 capistrano 食谱来完成它(请参阅when 源下的lib dirs)。我必须在我的 capistrano 部署脚本中设置when_environment。
任何时候都可以默认为生产,所以我只是玩弄它看看。换句话说,如果您只在生产中执行此操作,则可能不需要 RAILS_ENV=#{environment}。我有几个登台环境,所以我传入环境来帮助编写脚本。
如果我可以指定一个不同的 rake 目录来让它与 /usr/local/bin/rake 一起工作!有人在这方面提供帮助吗?