Управление несколькими экземплярами Resque и Redis - PullRequest
1 голос
/ 14 февраля 2012

Я пытаюсь, чтобы Бог контролировал два случая 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 Ответ

2 голосов
/ 14 февраля 2012

Во-первых, вам не нужно указывать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...