J'essaie d'exécuter la fonction forever pour node.js mais j'obtiens ci-dessous des avertissements;
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 régler --minUptime
et --spinSleepTime
pour supprimer ces avertissements
Package forever
installé avec npm install forever -g
Ce ne sont que des avertissements. Vous pouvez continuer à les ignorer, si vous le souhaitez. Mais si vous souhaitez les définir explicitement, forever --help
vous indique comment procéder. Lancez simplement forever
avec:
forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js
La documentation n'est pas très exhaustive, un peu d'informations complémentaires.
Dans les exemples suivants, nous utiliserons deux scripts:
fail-fast.js:
process.exit(1);
fail-slow.js:
setTimeout(() => { process.exit(1); }, 2000);
forever fail-fast.js
fail-fast.js
le script s'exécutera ne seule fois, alors aucune autre tentative de démarrage ne sera effectuée.
forever fail-slow.js
fail-slow.js
le script sera redémarré indéfiniment, car il reste en place plus de 1000 ms (valeur par défaut de minUptime
si non spécifié). Vous pouvez limiter le nombre de redémarrages avec le -m
paramètre.
minUptime
forever --minUptime 10000 fail-fast.js
forever --minUptime 10000 fail-slow.js
Tous les deux fail-fast.js
et fail-slow.js
sera ne sera jamais redémarré, car nous avons étendu minUptime
à 10 secondes et maintenant fail-slow.js
est considéré comme tournant.
spinSleepTime
Chaque fois que vous définissez spinSleepTime
(avec ou sans minUptime
), votre processus redémarrera même s'il est considéré comme "tournant".
forever --spinSleepTime 30000 fail-fast.js
forever --spinSleepTime 30000 fail-slow.js
Les deux scripts seront redémarrés pour toujours, en attendant 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 de mal avec spinSleepTime
. fail-fast.js
redémarrera wating spinSleepTime
, mais fail-slow.js
redémarrera immédiatement, pas d'attente! Il peut être prouvé par:
console.log((new Date()).getTime());
setTimeout(() => {
process.exit(1);
}, 2000);
sortie comme:
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