Попытка начать Redis и Resque Scheduler в рамках задачи граблей
-
24-10-2019 - |
Вопрос
Я хочу начать Redis и Redis-Scheduler с задания по грабли, поэтому я делаю следующее:
namespace :raketask do
task :start do
system("QUEUE=* rake resque:work &")
system("rake redis:start")
system("rake resque:scheduler")
end
end
Проблема в том, что Redis начинается на переднем плане, а затем это никогда не начинает спланировать планировщик. Если он не начнется в фоновом режиме (используя &). Планировщик должен быть запущен после того, как Redis работает и работает.
Решение
Похоже на Nirvdrum. Работники Respe собираются потерпеть неудачу/уйти, если Redis еще не работает и не принимает соединения.
Проверьте эту суть, чтобы получить пример того, как Начните вещи с монитора (Linux).
Monit позволяет одной службе зависеть от другой, и убедится, что они остаются в живых, контролируя файл .pid.
Другие советы
Это поражает меня как не отличную идею. Вы должны запустить свой сервер Redis с помощью сценария инициации или что -то в этом роде. Но, если вы действительно хотите пойти таким образом, вам, вероятно, нужно изменить свою Redis: запустите задачу, чтобы использовать NOHUP и фоновый процесс, чтобы вы могли отключиться от TTY и сохранить процесс запуска.