NodeJS Forever软件包minUptime和spinSleepTime警告

我试图运行node.js的永久function,但我得到警告以下;

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 -gnpm install forever -g

这些只是警告。 如果你愿意,你可以继续无视它们。 但如果你想明确地设置它们, forever --help告诉你如何做到这一点。 从forever开始:

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

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

在下面的例子中,我们将使用两个脚本:

故障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毫秒。

简而言之:

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

@Megadix答案spinSleepTime有问题。 fail-fast.js会重新启动spinSleepTime ,但fail-slow.js会立即重启,不会等待! 它可以被certificate:

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

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

我假设你正在使用快速模块,这是你使用后的方式 – 永远启动SERVER.js – 你的服务器没有运行,因为快递模块运行服务器path./bin/www – 所以你应该使用这个命令 – 永远启动./bin/www –name =“SERVER” – name是你的js文件的名字,默认是app.js