Cercando di iniziare Redis e scheduler resque all'interno di un task rake
-
24-10-2019 - |
Domanda
Voglio iniziare Redis Redis e-scheduler da un compito rastrello così sto facendo quanto segue:
namespace :raketask do
task :start do
system("QUEUE=* rake resque:work &")
system("rake redis:start")
system("rake resque:scheduler")
end
end
Il problema è che i Redis inizia in primo piano e poi questo mai prende il via il programma di pianificazione. Se non si avvia in background (usando &). Scheduler deve essere avviato dopo Redis è attivo e funzionante.
Soluzione
simile a nirvdrum. I lavoratori Resque stanno andando a fallire / chiudere se Redis non è già in esecuzione e di accettare connessioni.
controllare questa sostanza per un esempio di come ottenere le cose iniziate con Monit (roba linux).
Monit permette di servizio di essere dipendente da un altro, e si assicura che rimanere in vita attraverso il monitoraggio di un file .pid.
Altri suggerimenti
che mi colpisce come non è una grande idea. Si dovrebbe avere il vostro server Redis avviato tramite un init script o qualcosa del genere. Ma, se si vuole veramente andare in questo modo, probabilmente è necessario modificare le Redis:. Iniziare compito di utilizzare nohup e lo sfondo del processo in modo da poter staccare dalla TTY e mantenere il processo in esecuzione