【发布时间】:2011-05-24 11:59:50
【问题描述】:
我正在尝试在我的应用程序中使用 whenever gem,但我无法在 schedule.rb 中运行 rake 命令。
抛出的错误是
/bin/bash: rake: command not found
我也在使用 bundler,所以我所有的 gem 都被冻结到应用程序中。
【问题讨论】:
我正在尝试在我的应用程序中使用 whenever gem,但我无法在 schedule.rb 中运行 rake 命令。
抛出的错误是
/bin/bash: rake: command not found
我也在使用 bundler,所以我所有的 gem 都被冻结到应用程序中。
【问题讨论】:
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 食谱来完成它(请参阅every 源下的lib dirs)。我必须在我的 capistrano 部署脚本中设置when_environment。
只要可以默认为生产,所以我只是玩弄它看看。换句话说,如果您只在生产中执行此操作,则可能不需要 RAILS_ENV=#{environment}。我有几个暂存环境,所以我传入环境来帮助编写脚本。
如果我能指定一个不同的 rake 目录来让它与 /usr/local/bin/rake 一起工作就好了!有人在这方面提供帮助吗?
【讨论】: