Comment gracieusement le redémarrage d'un serveur NodeJS?
Actuellement, mon environnement de prod pour un side-project est un repo git, où je tire dans un code, le supprimer manuellement le serveur avec Ctrl-C, et de le redémarrer manuellement.
Je me rends compte qu'il ya beaucoup de choses qui clochent dans cette. Par exemple, si un utilisateur est toujours en train de faire quelque chose d'important, et le processus est à croquer des données sensibles, et je viens de l'a tué?!
Lorsque j'ai utilisé nœud v0.4.x il y avait une belle Grappe de module de redémarrer le serveur normalement, lorsque l'application est dans un état calme. Dans v0.6.x le Cluster module est intégré dans le nœud, mais c'est vraiment, vraiment nue, et n'a pas le redémarrage progressif de la capacité.
Ce que quelqu'un sait comment je peux normalement redémarrer un serveur nodejs dans v0.6.x?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez gérer les signaux POSIX dans le nœud code.
Le voir dans l'exemple de code, qui se chargera de SIGINT (Ctrl-C par exemple) comme un signal d'ARRÊT pour tous les travailleurs du cluster, et SIGUSR2 sera juste de redémarrer tous les travailleurs
Donc, l'émission de
kill -SIGUSR2 PID
, où PID est le nœud maître PID va redémarrer tous les clusterSIGUSR2
gestionnaire besoin de faire quelque chose pour redémarrer le processus, il s'est juste arrêté?Il y a un module nommé Pour toujours.
Qui peuvent normalement redémarrer le processus. Je suppose alors que vous pouvez en quelque sorte d'exécuter plusieurs instances de cluster (un sur chaque core) et utilisez Jamais de surveiller, de les redémarrer.
C'est juste une option que j'ai trouvé; je suis ouvert à toute suggestion!
Il y a aussi un module nommé PM2. Il a la capacité d'arrêter tous les processus dans un cluster.