-
Notifications
You must be signed in to change notification settings - Fork 0
/
meadowlark_cluster.js
31 lines (31 loc) · 1.4 KB
/
meadowlark_cluster.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
var cluster = require('cluster');
function startWorker() {
var worker = cluster.fork();
console.log('КЛАСТЕР: Исполнитель %d запущен', worker.id);
}
if (cluster.isMaster) {
require('os').cpus().forEach(function () {
startWorker();
});
// Записываем в журнал всех отключившихся
// исполнителей;
// Если исполнитель отключается, он должен затем
// завершить работу, так что мы подождем
// события завершения работы для порождения
// нового исполнителя ему на замену
cluster.on('disconnect', function (worker) {
console.log('КЛАСТЕР: Исполнитель %d отключился от кластера.',
worker.id);
});
// Когда исполнитель завершает работу,
// создаем исполнителя ему на замену
cluster.on('exit', function (worker, code, signal) {
console.log('КЛАСТЕР: Исполнитель %d завершил работу' +
' с кодом завершения %d (%s)', worker.id, code, signal);
startWorker();
});
} else {
// Запускаем наше приложение на исполнителе;
// см. meadowlark.js
require('./meadowlark.js')();
}