我试图让上帝监视两个Resque实例,一个用于生产,一个用于分期。
所以我在系统启动时启动了两个Redis实例:redis_6379和redis_6380。
然后我用Daemontools开始监视上帝。
我的上帝脚本看起来像这样:
God.watch do |w|
w.dir = "#{rails_root}"
w.name = "resque-#{num}"
w.group = 'resque'
w.interval = 30.seconds
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
w.start = "rake resque:work QUEUE='*' RAILS_ENV=#{rails_env}"
....
end
我不需要以某种方式将暂存和生产资源转换流程与特定的redis实例相关联吗?
我逐渐把它拼凑在一起,但我想我错过了一个关键部分。
提前致谢
答案 0 :(得分:2)
首先,您无需在QUEUE
中指定RAILS_ENV
和w.start
,因为您已在适当的位置w.env
指定了它们。
其次,此脚本在rails_env
环境中运行单个resque实例(无论其值是什么)。
我建议这样的事情:
%w(staging production).each do |rails_env|
God.watch do |w|
w.dir = "#{rails_root}" # <= is this path the same for production and staging?
# if not, change accordingly.
w.name = "resque-#{rails_env}"
w.group = 'resque'
w.interval = 30.seconds
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
w.start = "rake resque:work"
....
end
end