NodeJS Forever包minUptime和spinSleepTime警告

问题描述 投票:22回答:5

我正在尝试为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来删除这些警告

forever安装npm install forever -g

node.js forever
5个回答
17
投票

这些只是警告。如果你愿意,你可以继续忽略它们。但是如果你想明确地设置它们,forever --help会告诉你如何这样做。刚刚启动forever

forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js

16
投票

文档不是很详尽,有一些额外的信息。

在以下示例中,我们将使用两个脚本:

故障fast.js:

process.exit(1);

故障slow.js:

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

1)使用默认值

forever fail-fast.js

fail-fast.js脚本只执行一次,然后不会进行其他启动尝试。

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.jsfail-slow.js都将永远不会重新启动,因为我们将minUptime扩展到10秒,现在fail-slow.js被认为正在旋转。

3)设置spinSleepTime

无论何时设置spinSleepTime(使用或不使用minUptime),即使将其视为“旋转”,您的进程也会重新启动。

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

这两个脚本将永远重启,等待重启之间的spinSleepTime毫秒。


3
投票

简而言之:

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

@Megadix答案spinSleepTime有问题。 fail-fast.js将重新启动wate spinSleepTime,但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

0
投票
forever start --minUptime 1234 --spinSleepTime 3421 SERVER.js

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


-1
投票

我假设您正在使用快速模块,这是您使用后的方式 - 永远启动SERVER.js - 您的服务器未运行,因为快速模块在路径中运行服务器./bin/www - 所以您应该使用此命令 - 永远启动./bin/www --name =“SERVER” - name是js文件的名称,默认为app.js

© www.soinside.com 2019 - 2024. All rights reserved.