1 | const cluster = require('cluster');
|
2 | let numCPUs = require('os').cpus().length;
|
3 | module.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 |