1

我在 log/resque-0.log 中收到以下错误:

rake aborted!
non-absolute home
/srv/myapp/current/Rakefile:4

如果我使用上帝使用的相同命令手动启动一个工人,它启动得很好:

QUEUE=* RAILS_ENV=production /usr/bin/rake -f /srv/myapp/current/Rakefile environment resque:work

我尝试在“rails”用户和“root”用户(God 在其下运行)下运行该命令。有任何想法吗?

4

3 回答 3

1

你在“Rakefile”和“resque”之间有一个额外的环境

我的上帝脚本通常是这样的:

rails_env = ENV['RAILS_ENV'] || "development"
rails_root = ENV['RAILS_ROOT'] || "/path/to/app"


God.watch do |w|
    w.name = "resque-task"
    w.group = 'resque'
    w.interval = 30.seconds
    w.start = "/path/to/rake -f #{rails_root}/Rakefile resque:work QUEUE=* RAILS_ENV=#{rails_env}"

    w.uid = 'gazler'
    w.gid = 'gazler'
于 2011-05-09T21:09:05.440 回答
1

所以问题的一部分是 shadow_puppet 试图解决你的路径,但如果你真的试图使用 shadow_puppet 或其他试图在 ~ 上扩展路径的东西(例如 Capistrano),请确保包括:

w.env = {"HOME" => "/users/home/dir"}

这为我的情况解决了这个问题(从上帝监控的 resque 工人那里开车帽)。

于 2011-12-05T14:22:42.480 回答
0

好吧,原来我只需要从我的 Gemfile 中删除 shadow_puppet。不知道为什么我一开始就把它放在那里,也许它是旧版 Moonshine 的遗留物。

于 2011-05-10T00:37:01.553 回答