Есть задача сделать task-worker систему которая должна состоять из главного процесса и child процессов (кол-во child процессов должно быть равно кол-ву ядер на ПК)
суть - с фронта передается задача(объект) в главный процесс (Master) после чего главный процесс передает задачу на исполнение в child процессы ***(Worker)***, после выполнения Worker отдает результат обратно на Master
у меня нет опыта работы с node.js я нашел такую конструкцию которая (как я понял) передает задачи воркерам в зависимости от кол-ва ядер ПК
-
правильно ли я понимаю что в файле ‘/worker.js’ должно быть описано поведение воркеров? и обработка результата ответа?
-
если нет, подскажите как правильно описать модель общения главного и child процессов
var cluster = require(‘cluster’);
var numCPUs = require(‘os’).cpus().length;cluster.setupMaster({exec: __dirname + ‘/worker.js’});
if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { console.log('worker ' + worker.process.pid + ' died'); }); } else { // Workers can share any TCP connection // In this case it is an HTTP server http.createServer(function(req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(PORT); }