Moja aplikacja internetowa ma 3 główne składniki node.js: witrynę, kanały i zadania.Forever.js uruchamianie i ponowne uruchamianie wielu skryptów
Aby uruchomić te używam zawsze:
//forever.js
var forever = require('forever');
function start(name){
forever.start(['coffee', name + '.coffee'], { /* log options */ })
};
start('website');
start('feeds');
start('jobs');
Co raz pierwszy zauważył, że jeśli mogę uruchomić skrypt przyzwyczajenie uruchomić go jako demon. (Co jest najbardziej prawdopodobne normalny)
node forever.js
Więc co zrobiłem było uruchomić następny forever.js skryptu z wiecznie. Nie jestem pewien, czy to jest poprawne, istnieje również forever.startDaemon, więc nie jestem pewien, którego powinienem użyć.
Działa to, ale problem polega na tym, że chciałbym zrestartować wszystkie procesy po opublikowaniu nowej wersji mojej aplikacji. Używam git's post-receive hook, aby uruchomić forever.js za pierwszym razem, ale jeśli zrobię to na każdym post-otrzymaniu, to po prostu odradzam 3 procesy za każdym razem.
Sądzę, że potrzebuję sposobu na ponowne uruchomienie 3 procesów, jeśli są już uruchomione. Myślałem, że to zrobić z forever.list ale dokumentacja tylko powiedzieć:
forever.list (format, callback)
Returns a list of metadata objects about each process that is being run using
forever. This method is synchronous and will return the list of metadata as such.
Only processes which have invoked forever.startServer() will be available from
forever.list()
Przede wszystkim nie jestem pewien środek jakim formacie i drugi to oczekuje zwrotna ale potem mówi jej synchroniczne. Co jest trochę mylące i nie jestem pewien, jak używać listy.
Ostatecznie wszystko, co chcę zrobić, to uruchomić/ponownie uruchomić 3 procesy node.js na haku po odebraniu git.
można po prostu uruchomić 'zawsze restart forever.js'? Wyobrażam sobie, że zabiłoby to dziecięce skrypty, ale jeśli nie, po prostu rób "na zawsze", zakładając, że nie uruchamiasz innych projektów z tą samą instancją na zawsze. –