Управление несколькими экземплярами Resque и Redis
Я пытаюсь, чтобы Бог контролировал два случая 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?
Я постепенно соединяю это, но я думаю, что мне не хватает ключевой части.
заранее спасибо
1 ответ
Во-первых, вам не нужно указывать QUEUE
а также RAILS_ENV
в w.start
так как вы уже указали их в нужном месте, w.env
,
Во-вторых, этот скрипт запускает один экземпляр resque в rails_env
окружающая среда (какова бы ни была ее ценность).
Я предлагаю что-то вроде этого:
%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