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

17
demandé sur mujaffars 2014-07-24 01:17:08

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
14
répondu Khôi 2014-07-24 08:55:06

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.

10
répondu Megadix 2016-05-20 16:07:35

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
2
répondu user6590090 2016-07-18 03:32:55
forever start --minUptime 1234 --spinSleepTime 3421 SERVER.js

https://github.com/nodejitsu/forever#usage

0
répondu jgillich 2014-07-23 21:22:16

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

0
répondu cyprian 2017-04-14 10:10:15