我在 aws 微服务器上部署了(使用 capistrano)一个 ruby on rails 项目。我在 ruby 1.9.2-290 和 rails 3.2.6 上,我也使用 bundler。我在我的 opt/rails-project/lib/tasks/tasks.rake 中开发了一个任务 rake
namespace :myclass do
task "my-task" => :environment do
# do the stuff which work nicely if i enter my command line manually
end
end
这就是我在 crontab 中的称呼:
*/3 * * * * cd /opt/rails-project/current && /opt/rails-project/shared/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake myclass:my-task RAILS_ENV=production >> ~/logs-my-task.txt
文件 ~/logs-my-task.txt 每 3 分钟创建和更新一次。该文件仅包含 capistrano 的版本发布信息,但没有来自我的任务 rake。
正如我在我的任务 rake 的评论中所说,如果我通过 ssh 直接在服务器中启动此命令,我的任务 rake 就完成了它的工作......
我整天/晚上都在网上搜索,但无法弄清楚。
我试图从 rails 中删除 http_basic auth 但同样的问题。
希望你有想法,谢谢帮助!