我希望我的cron作业(调用rake任务)使用安装在[rails_app] / vendor / bundle或[rails_app] / vendor / cache中的gem。目前,我的系统宝石已经过时,但由于我无法控制的各种原因,我无法更新它们。
我尝试使用bundle exec
,但这似乎不起作用。我得到的错误是
usr / local / lib / ruby / gems / 1.9.1 / gems / bundler-1.0.18 / lib / bundler / spec_set.rb:88:in'实现':找不到rake- 0.9.2.2在任何来源(Bundler :: GemNotFound)
我相信这是因为我的系统耙子已经过时了。我尝试在cron作业中使用bundle exec rake _0.9.2.2_ [my_task]
,但出现了同样的错误
我尝试了whenever宝石;这产生了确切的错误。
所以我猜我有两个问题:
请注意,该站点在Phusion Passenger中部署时可以正常工作。
答案 0 :(得分:2)
在寻找同一问题的解决方案时,我发现this Thread有几个提示。
快速&对我来说简单的方法就是将cron命令作为登录shell运行 - 就像这样:
* * * * * /bin/bash -l -c 'bundle exec rake _0.9.2.2_ [my_task]' 2>&1
结尾2>&1
只是为了确保在cron日志中收到错误。另请参阅man bash
了解更多信息!