Попытка запустить redis и перезапустить планировщик в грабли - PullRequest
3 голосов
/ 15 марта 2011

Я хочу запустить redis и redis-scheduler из задачи rake, поэтому я делаю следующее:

namespace :raketask do
  task :start do
    system("QUEUE=* rake resque:work &")
    system("rake redis:start")
    system("rake resque:scheduler")
  end
end

Проблема в том, что redis запускается на переднем плане, а затем это никогда не запускает планировщик,Если это не начнется в фоновом режиме (с помощью &).Планировщик должен быть запущен ПОСЛЕ того, как redis запущен и работает.

Ответы [ 2 ]

1 голос
/ 01 июля 2011

похоже на нирвдрум.Работники resque потерпят неудачу / завершат работу, если redis еще не запущен и не принимает соединения.

Изучите этот список для примера того, как начать работу с monit (linux stuff).

Monit позволяет одной службе зависеть от другой иуверен, что они остаются в живых, отслеживая файл .pid.

0 голосов
/ 05 апреля 2011

Это кажется мне не очень хорошей идеей. Вы должны запустить свой сервер Redis с помощью сценария инициализации или чего-то еще. Но, если вы действительно хотите пойти по этому пути, вам, вероятно, нужно изменить задачу redis: start, чтобы использовать nohup и фоновый процесс, чтобы вы могли отключиться от TTY и поддерживать процесс в работе.

...