У меня есть приложение Node, создающее ряд рабочих процессов через fork()
для самостоятельного выполнения некоторых задач.Как побочный продукт, рабочие производят снимок действий, предпринятых в форме объекта.У каждого работника есть прослушиватель событий, присоединенный к событию 'exit', когда они отправляют свой снимок обратно в родительский процесс с помощью process.send()
.
. Вот пример настройки:
// parent.js
const exec = require('child_process');
const worker = exec.fork('worker.js', [], {
stdio: ['pipe', 'pipe', null, 'ipc']
});
worker.on('message', (snapshot) => {
// Handle the snapshot sent from worker
});
// worker.js
process.on('exit', () => {
process.send({ /* snapshot data */ })
});
/* Arbitrary task work */
Является ли это приемлемым шаблоном для родительского / рабочего IPC?В частности, будет ли это достоверно свидетельствовать о надежности получения сообщений в родительском процессе с учетом характера события exit
и process.send()
?
Является ли событие beforeExit
более подходящим для этого шаблона?