NodeJS 是否强制杀死节点集群中的子进程?

jfewjypa  于 2023-03-29  发布在  Node.js
关注(0)|答案(1)|浏览(126)

我最近使用了节点集群模块,现在有一点我很好奇,在把响应发送回用户后,是否强制杀死子进程?我目前的代码是:

app.get('/', (_, res) => {
    res.send('Ok');
    cluster.worker.kill(); //why do i have to kill it?
});
if (cluster.isMaster){
  for (let i = 0; i < cpuCount; i++){
    cluster.fork();
  }
  cluster.on('exit', (worker, code, signal) => {
    console.log(`Worker process with pid: ${worker.process.pid} killed`);
    cluster.fork(); //create a new instance
  });
}else{
  server.listen(port, () => {
      console.log(`TCP Server listening on port ${port} | cpu cores: ${cpuCount} | Master: ${cluster.isMaster} | PID: ${process.pid}`);
  });
}
nuypyhwy

nuypyhwy1#

实际上不是!Node.js中的集群是一种扩展Node.js应用程序的方法。Node.js是单线程的,所以没有办法使用线程来扩展。相反,Node.js使用基于进程的扩展。集群允许您创建可以共享同一服务器端口的子进程。这些子进程可以在不同的CPU内核上运行,这使得Node.js应用程序可以利用多核系统。
see this link

相关问题