Можно ли использовать модуль кластера в лямбда-функциях? Я пробовал это:
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
} else {
console.log('child process ');
}
}
количество ядер всегда равно 2, но я никогда не вижу журнал дочернего процесса.
Обновление для примера комментариев:
Я попытался реализовать шаблон сообщения, но я все еще не получаю сообщение, отправленное дочерними элементами. Цикл for корректно пересекает работу кластера, но никогда не находит сообщение.
'use strict';
var cluster = require('cluster');
var http = require('http');
var os = require('os');
var numCPUs = os.cpus().length;
console.log('Number of Cores : ', numCPUs);
exports.test = (event, context, callback) => {
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; ++i) {
cluster.fork();
}
for (const id in cluster.workers) {
cluster.workers[id].on('message', messageHandler);
}
} else {
process.send('running');
}
};
function messageHandler(msg) {
console.log(msg);
}