【发布时间】:2019-09-18 22:04:49
【问题描述】:
我有一个 Node 应用程序,它通过 fork() 创建了许多工作进程来自己执行一些任务。作为副产品,工作人员会生成以对象形式执行的操作的快照。每个工作人员都有一个附加到“退出”事件的事件侦听器,此时他们通过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 事件是否更适合这种模式?
【问题讨论】:
标签: node.js design-patterns ipc worker