web-dev-qa-db-ja.com

NodeJS ForeverパッケージのminUptimeおよびspinSleepTimeの警告

Node.jsのforever関数を実行しようとしていますが、以下の警告が表示されます。

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

--minUptimeおよび--spinSleepTimeを設定してこれらの警告を削除する方法

npm install forever -gforeverパッケージをインストールしました

22
John

これらは単なる警告です。必要に応じて、それらを無視して続行できます。ただし、明示的に設定する場合は、forever --helpはその方法を説明します。でforeverを開始するだけです:

forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js
17
Khôi

ドキュメンテーションはあまり網羅的ではなく、追加情報が少しあります。

次の例では、2つのスクリプトを使用します。

fail-fast.js:

process.exit(1);

fail-slow.js:

setTimeout(() => { process.exit(1); }, 2000);

1)デフォルトを使用する

forever fail-fast.js

fail-fast.jsスクリプトは1回のみを実行し、他の開始試行は行われません。

forever fail-slow.js

fail-slow.jsスクリプトは無期限に再起動になります。これは、1000ミリ秒(指定されていない場合のminUptimeのデフォルト値)を超えているためです。再起動の回数を制限するには、-mパラメータ。

2)minUptimeのみを設定する

forever --minUptime 10000 fail-fast.js
forever --minUptime 10000 fail-slow.js

どちらも fail-fast.jsおよびfail-slow.js決して再起動されないになります。これはminUptimeを10秒に延長し、今ではfail-slow.jsは回転していると見なされます。

3)spinSleepTimeの設定

spinSleepTimeminUptimeの有無にかかわらず)を設定するたびに、「スピニング」と見なされてもプロセスは再起動します

forever --spinSleepTime 30000 fail-fast.js
forever --spinSleepTime 30000 fail-slow.js

両方のスクリプトは永久に再起動になり、再起動の間にspinSleepTimeミリ秒待機します。

16
Megadix

要するに:

When stop
    if hadRunTime >= minUptime 
       restart 
    else if spinSleepTime != 0
         wait spinSleepTime
         restart
    else 
         stop and no restart

@Megadix答えはspinSleepTimeに何か問題があります。 fail-fast.jsspinSleepTimeのウォーティングを再開しますが、fail-slow.jsはすぐに再起動し、待機することはありません!以下によって証明できます:

 console.log((new Date()).getTime());
 setTimeout(() => {
    process.exit(1);
   }, 2000);

次のような出力:

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
3
user6590090
forever start --minUptime 1234 --spinSleepTime 3421 SERVER.js

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

0
jgillich