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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top