더북(TheBook)

http://localhost:8086에 접속하면 1초 후 콘솔에 워커가 종료되었다는 메시지가 뜹니다. 여섯 번 새로 고침을 하면 모든 워커가 종료되어 서버가 응답하지 않습니다.

콘솔

16136번 워커가 종료되었습니다.
code 1 signal null
17272번 워커가 종료되었습니다.
code 1 signal null
16452번 워커가 종료되었습니다.
code 1 signal null
9004번 워커가 종료되었습니다.
code 1 signal null
11040번 워커가 종료되었습니다.
code 1 signal null
7368번 워커가 종료되었습니다.
code 1 signal null

코드(code)는 process.exit의 인수로 넣어준 코드가 출력되고, 신호(signal)는 존재하는 경우 프로세스를 종료한 신호의 이름이 출력됩니다.

워커 프로세스가 존재하기에 여섯 번까지는 오류가 발생해도 서버가 정상적으로 작동할 수 있다는 뜻입니다. 종료된 워커를 다시 켜면 오류가 발생해도 계속 버틸 수 있습니다. 다음과 같이 워커 프로세스가 종료되었을 때 새로 하나를 생성해봅시다.

cluster.js

...
  cluster.on('exit', (worker, code, signal) => {
    console.log(`${worker.process.pid}번 워커가 종료되었습니다.`);
    console.log('code', code, 'signal', signal);
    cluster.fork();
  });
...

콘솔

28592번 워커가 종료되었습니다.
code 1 signal null
10520번 워커 실행
10520번 워커가 종료되었습니다.
code 1 signal null
23248번 워커 실행
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.