-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
39 lines (36 loc) · 1.25 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'use strict';
var Logger = require('./lib/Logger')(process.env.NODE_ENV || 'development');
var config = require('./config.json')[process.env.NODE_ENV || 'development'];
var npid = require('npid');
var Client = require('./lib/Client');
var cluster = require('cluster');
var numCPUs = process.env.CONCURRENCY || 10;
try {
if (cluster.isMaster) {
var pid = npid.create('/var/run/ci_worker.pid');
var controlledExit = function(){
pid.removeOnExit();
process.exit(1);
};
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('online', function(worker) {
Logger.info("WORKER SLAVE IS STARTED ID=",worker.process.pid);
});
cluster.on('exit', function(worker, code, signal) {
Logger.info('WORKER SLAVE %d DIED (%s).', worker.process.pid, signal || code);
});
Logger.info("STARTED WORKER CLUSTER WITH CONCURRENCY = " + numCPUs);
}else{
var client = new Client(config.host, config.port, Logger);
}
if (cluster.isMaster) {
process.on('SIGINT',controlledExit).on('SIGTERM', controlledExit);
pid.removeOnExit();
}
} catch (err) {
console.log(err);
process.exit(1);
}