Essayer de commencer Redis et planificateur resque dans une tâche de râteau
-
24-10-2019 - |
Question
Je veux commencer Redis et Redis-programmateur d'une tâche Rake donc je fais ce qui suit:
namespace :raketask do
task :start do
system("QUEUE=* rake resque:work &")
system("rake redis:start")
system("rake resque:scheduler")
end
end
Le problème est le redis commence au premier plan, puis cela ne lance l'ordonnanceur. S'il ne démarre pas en arrière-plan (en utilisant &). Planificateur doit être démarré APRÈS Redis est en marche.
La solution
similaire à nirvdrum. Les travailleurs Resque vont échouer / quitter si Redis est en cours d'exécution et ne sont pas déjà d'accepter des connexions.
vérifier ce point essentiel pour un exemple de comment faire avancer les choses ont commencé avec Monit (substance linux).
Monit permet un service à être dépendante d'une autre, et fait en sorte qu'ils restent en vie en surveillant un fichier .pid.
Autres conseils
qui frappe moi comme pas une bonne idée. Vous devez avoir votre serveur Redis a commencé par un script d'initialisation ou quelque chose. Mais, si vous voulez vraiment aller dans cette voie, vous avez probablement besoin de modifier vos Redis. Commencer tâche à utiliser nohup et le contexte du processus de sorte que vous pouvez vous déconnecter du TTY et maintenir le processus en cours d'exécution