NodeJS Forever paquet minUptime et spinsleeptime Avertissements
j'essaie d'exécuter la fonction forever pour le noeud.js, mais je reçois les avertissements ci-dessous;
C:serv>forever start SERVER.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up f
or at least 1000ms
info: Forever processing file: SERVER.js
Comment définir --minUptime
et --spinSleepTime
pour supprimer ces avertissements
Installé forever
package npm install forever -g
5 réponses
ce ne sont que des avertissements. Tu peux continuer à les ignorer, si tu veux.
Mais si vous voulez définir explicitement, forever --help
vous dit comment faire. Commençons juste forever
avec:
forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js
La documentation n'est pas très exhaustive, un peu d'informations supplémentaires.
dans les exemples suivants, nous utiliserons deux scripts:
fail-fast.js:
process.exit(1);
fail-lent.js:
setTimeout(() => { process.exit(1); }, 2000);
1) en utilisant les paramètres par défaut
forever fail-fast.js
fail-fast.js
script exécutera une seule fois, alors aucune autre tentative de démarrage ne sera faite.
forever fail-slow.js
fail-slow.js
script redémarré indéfiniment, car il reste plus de 1000ms (valeur par défaut de minUptime
si non spécifié). Vous pouvez limiter le nombre de redémarrages avec l' -m
paramètre.
2) Paramétrage seulement minUptime
forever --minUptime 10000 fail-fast.js
forever --minUptime 10000 fail-slow.js
fail-fast.js
et fail-slow.js
sera ne jamais être redémarré, parce que nous avons étendu minUptime
à 10 secondes et maintenant fail-slow.js
est considéré comme la filature.
3) paramètre spinSleepTime
Chaque fois que vous définissez spinSleepTime
(avec notre sans minUptime
),votre processus de redémarrage, même s'il est considéré comme 'tourner'.
forever --spinSleepTime 30000 fail-fast.js
forever --spinSleepTime 30000 fail-slow.js
les Deux scripts seront redémarré pour toujours, wating spinSleepTime
millisecondes entre les redémarrages.
En bref:
When stop
if hadRunTime >= minUptime
restart
else if spinSleepTime != 0
wait spinSleepTime
restart
else
stop and no restart
@Megadix la réponse a quelque chose qui ne va pas avec spinSleepTime
.
fail-fast.js
va redémarrer wating spinSleepTime
,mais fail-slow.js
redémarre immédiatement,pas d'attente! Il peut être Prouvé par:
console.log((new Date()).getTime());
setTimeout(() => {
process.exit(1);
}, 2000);
sortie de la forme:
1468812185697
error: Forever detected script exited with code: 1
error: Script restart attempt #1
1468812187766
error: Forever detected script exited with code: 1
error: Script restart attempt #2
1468812189834
error: Forever detected script exited with code: 1
error: Script restart attempt #3
1468812191901
error: Forever detected script exited with code: 1
error: Script restart attempt #4
1468812193977
error: Forever detected script exited with code: 1
error: Script restart attempt #5
1468812196039
error: Forever detected script exited with code: 1
error: Script restart attempt #6
1468812198107
error: Forever detected script exited with code: 1
error: Script restart attempt #7
1468812200172
error: Forever detected script exited with code: 1
forever start --minUptime 1234 --spinSleepTime 3421 SERVER.js
je suppose que vous utilisez le module express bien après avoir utilisé - forever start SERVER.js-votre serveur n'est pas en cours d'exécution, car express module exécute le serveur dans path ./bin / www - vous devriez donc utiliser cette commande - forever start ./bin / www --name= "SERVER" - nom est le nom de votre fichier js, par défaut app.js