Tratando de comenzar a Redis y resque el planificador dentro de una tarea de rastrillo

StackOverflow https://stackoverflow.com/questions/5316054

  •  24-10-2019
  •  | 
  •  

Pregunta

Quiero comenzar a Redis y Redis-Sceduler desde una tarea de rastrillo, así que estoy haciendo lo siguiente:

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

El problema es que el Redis comienza en primer plano y luego esto nunca inicia el planificador. Si no se inicia en segundo plano (usando &). El programador debe iniciarse después de que Redis está en funcionamiento.

¿Fue útil?

Solución

Similar a Nirvdrum. Los trabajadores de Resque fallarán/dejarán de fumar si Redis aún no está ejecutando y aceptando conexiones.

Mira esta esencia para un ejemplo de cómo Empiece las cosas con el monit (Cosas de Linux).

Monit permite que un servicio dependa de otro, y se asegura de que se mantengan con vida al monitorear un archivo .pid.

Otros consejos

Eso me parece una gran idea. Debe comenzar su servidor Redis a través de un script de inicio o algo así. Pero, si realmente desea ir de esta manera, probablemente necesite modificar su Redis: Inicie la tarea para usar Nohup y en segundo plano el proceso para que pueda desconectarse del TTY y mantener el proceso en funcionamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top