Frage

Ich möchte Redis und Redis-Scheduler von einer Rake-Aufgabe beginnen, also mache ich Folgendes:

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

Das Problem ist, dass der Redis im Vordergrund beginnt und dies dann nie den Scheduler ausschüttet. Wenn es nicht im Hintergrund beginnt (mit &). Scheduler muss gestartet werden, nachdem Redis in Betrieb ist.

War es hilfreich?

Lösung

Ähnlich wie nirvdrum. Die Reseque -Arbeiter werden scheitern/beenden, wenn Redis nicht bereits ausgeführt wird und Verbindungen akzeptiert.

Schauen Sie sich dieses Kern an, um ein Beispiel für wie zu Beginnen Sie die Dinge mit Monit (Linux -Zeug).

Bei der Monit kann ein Dienst von einem anderen abhängig sein, und stellt sicher, dass sie durch Überwachung einer .pid -Datei am Leben bleiben.

Andere Tipps

Das fällt mir als keine großartige Idee an. Sie sollten Ihren Redis -Server über ein Init -Skript oder so starten lassen. Wenn Sie jedoch wirklich auf diese Weise gehen möchten, müssen Sie wahrscheinlich Ihre Redis ändern: Starten Sie die Aufgabe, um Nohup zu verwenden und den Prozess zu erhalten, damit Sie die Verbindung von der TTY trennen und den Prozess laufen lassen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top