使用gem时的问题

时间:2010-12-13 06:18:18

标签: ruby cron rake whenever

我正在尝试在我的应用程序中使用whenever gem,但我无法在schedule.rb中运行rake命令。

抛出的错误是

/bin/bash: rake: command not found

我也在使用bundler,所以我的所有宝石都被冻结到了应用程序中。

2 个答案:

答案 0 :(得分:4)

rake在某个非常典型的地方,比如/ usr / local / bin?尝试将此添加到schedule.rb:

env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'

答案 1 :(得分:0)

尝试使用'command'而不是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时使用'whendate_crontab --set environment = beta'。

我有capistrano使用随时随地的capistrano食谱(参见随时随地的lib dirs)。我必须在我的capistrano部署脚本中设置whatever_environment。

什么时候可以默认生产所以我只是玩它并看到。换句话说,如果您只是在生产中执行此操作,则可能不需要RAILS_ENV =#{environment}。我有几个临时环境,所以我传入环境来帮助编写脚本。

如果我只能指定一个不同的rake目录来使用/ usr / local / bin / rake!有人在这方面提供帮助吗?