작성
·
373
·
수정됨
0
안녕하세요?
setTimeout 대신 setImmediate를 적용해 요청이 발생하는 즉시 워커가 종료되게 해보았는데요, 이 경우엔 워커가 한번에 두개씩 종료됩니다.
DevTool - network 창에 보이는 요청은 새로고침 1회당 GET 1회씩인데 왜 이러는지 궁금합니다!
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`마스터 프로세스 아이디 : ${process.pid}`);
// CPU 갯수만큼 워커를 생산
for (let i=0; i < numCPUs; i++ ){
cluster.fork();
}
//워커가 종료되었을 때
cluster.on('exit', (worker, code, signal) => {
console.log(`${worker.process.pid}번 워커가 종료되었습니다.`);
console.log('code', code, `signal`, signal);
});
} else {
// 워커들이 포트에서 대기
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
res.write('<h1>Hello Node!');
res.end('<p>Hello Cluster!</p>');
setImmediate(()=> {
process.exit(1);
});
}).listen(8086);
console.log(`${process.pid}번 워커 실행`);
};
답변 2
0
로컬서버 접속 후 새로고침 3번만에 전부 종료되었습니다.