Как передать выходные данные разветвленных / кластерных процессов в мастер stdout / stderr - PullRequest
0 голосов
/ 17 октября 2018

При выполнении worker = cluster.fork() я хотел бы иметь возможность пересылать потоки stdout и stderr в основной процесс Node.js.

Как я могу это сделать?

Я пытался сделать:

worker = cluster.fork();
worker.process.stdout.pipe(process.stdout)
//             ^ this is null

Обходной путь может состоять в использовании сообщений, но я хочу иметь возможность потоковой передачи содержимого.

worker.on("message", function(msg){
  console.log("Master says:" + msg);
});
...
worker.send({message:'hello'});

Как получить доступ к стандартному выводу разветвленного процесса/ кластер

1 Ответ

0 голосов
/ 17 октября 2018

см. Код ниже

для основного процесса:

const cluster = require('cluster');
cluster.settings.stdio=[0, 1, 2, 'ipc'];
cluster.settings.silent = true; //Whether or not to send output to parent's stdio. Default: false. 
cluster.settings.exec = './hello' //the forked process's file path
const childW = cluster.fork();
const child = childW.process;

для разветвленного процесса: ./hello.js

console.log('hello')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...