UNPKG

546 BJavaScriptView Raw
1const cluster = require('cluster');
2let numCPUs = require('os').cpus().length;
3module.exports = () => {
4
5 if(Config("_server").cluster) {
6 // if the program will restart,
7 // and CPU has one thread,
8 // then run two workers so on of them can be reserved
9 if(numCPUs < 2 && Config("_server").restart) numCPUs = numCPUs + 1;
10 for (let i = 0; i < numCPUs; i++) {
11 cluster.fork();
12 }
13 }
14 else cluster.fork();
15
16 // whenever the worker exits, fork a new one
17 cluster.on('exit', function(worker){
18 cluster.fork();
19 });
20};
\No newline at end of file