Skip to content

Commit d17c58c

Browse files
committed
Adding cluster start time for workers
1 parent 7469d75 commit d17c58c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

examples/app-highavailability/application.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,25 @@ var cluster = require('cluster'),
1313
status = require('mod_statuspage'),
1414
timers = require('timers');
1515
// Spawn numCPUs worker processes
16-
var numCPUs = require('os').cpus().length;
16+
var numCPUs = require('os').cpus().length,
17+
clusterStartTime = Date.now(),
18+
newWorkerEnv = {};
1719

1820
// Master spawns worker processes
1921
if (cluster.isMaster) {
22+
newWorkerEnv.clusterStartTime = clusterStartTime;
2023

2124
// Fork workers
2225
for (var i = 0; i < numCPUs; i++) {
2326
console.log('Starting worker ' + i);
24-
cluster.fork();
27+
cluster.fork(newWorkerEnv);
2528
}
2629

2730
// If any worker process dies, spawn a new one to bring back number of processes
2831
// to be back to numCPUs
2932
cluster.on('exit', function(worker, code, signal) {
3033
console.log('worker ' + worker.process.pid + ' died');
31-
cluster.fork();
34+
cluster.fork(newWorkerEnv);
3235
});
3336

3437
// Logs to know what workers are active
@@ -40,6 +43,10 @@ if (cluster.isMaster) {
4043
// Worker process
4144
// Start monitoring
4245
monitor.start();
46+
47+
if (process.env.clusterStartTime) {
48+
process.clusterStartTime = new Date(parseInt(process.env.clusterStartTime,10));
49+
}
4350

4451
// Simple express app
4552
var app = express();

0 commit comments

Comments
 (0)