99
1010import cluster from 'node:cluster' ;
1111import { EventEmitter } from 'node:events' ;
12- import process from 'node:process' ;
1312import chalk from 'chalk' ;
1413import Xev from 'xev' ;
1514import Logger from '@/logger.js' ;
@@ -31,38 +30,23 @@ const ev = new Xev();
3130
3231//#region Events
3332
34- let isShuttingDown = false ;
35-
36- if ( cluster . isPrimary && ! envOption . disableClustering ) {
37- // Listen new workers
38- cluster . on ( 'fork' , worker => {
39- clusterLogger . debug ( `Process forked: [${ worker . id } ]` ) ;
40- } ) ;
41-
42- // Listen online workers
43- cluster . on ( 'online' , worker => {
44- clusterLogger . debug ( `Process is now online: [${ worker . id } ]` ) ;
45- } ) ;
46-
47- // Listen for dying workers
48- cluster . on ( 'exit' , ( worker , code , signal ) => {
49- // Replace the dead worker,
50- // we're not sentimental
51- clusterLogger . error ( chalk . red ( `[${ worker . id } ] died (${ signal || code } )` ) ) ;
52- if ( ! isShuttingDown ) cluster . fork ( ) ;
53- else clusterLogger . info ( chalk . yellow ( 'Worker respawn disabled because of shutdown' ) ) ;
54- } ) ;
55-
56- process . on ( 'SIGINT' , ( ) => {
57- logger . warn ( chalk . yellow ( 'Process received SIGINT' ) ) ;
58- isShuttingDown = true ;
59- } ) ;
60-
61- process . on ( 'SIGTERM' , ( ) => {
62- logger . warn ( chalk . yellow ( 'Process received SIGTERM' ) ) ;
63- isShuttingDown = true ;
64- } ) ;
65- }
33+ // Listen new workers
34+ cluster . on ( 'fork' , worker => {
35+ clusterLogger . debug ( `Process forked: [${ worker . id } ]` ) ;
36+ } ) ;
37+
38+ // Listen online workers
39+ cluster . on ( 'online' , worker => {
40+ clusterLogger . debug ( `Process is now online: [${ worker . id } ]` ) ;
41+ } ) ;
42+
43+ // Listen for dying workers
44+ cluster . on ( 'exit' , worker => {
45+ // Replace the dead worker,
46+ // we're not sentimental
47+ clusterLogger . error ( chalk . red ( `[${ worker . id } ] died :(` ) ) ;
48+ cluster . fork ( ) ;
49+ } ) ;
6650
6751// Display detail of unhandled promise rejection
6852if ( ! envOption . quiet ) {
@@ -79,14 +63,7 @@ process.on('uncaughtException', err => {
7963
8064// Dying away...
8165process . on ( 'exit' , code => {
82- logger . warn ( chalk . yellow ( `The process is going to exit with code ${ code } ` ) ) ;
83- } ) ;
84-
85- process . on ( 'warning' , warning => {
86- if ( ( warning as never ) [ 'code' ] !== 'CHERRYPICK_SHUTDOWN' ) return ;
87- logger . warn ( chalk . yellow ( `${ warning . message } : ${ ( warning as never ) [ 'detail' ] } ` ) ) ;
88- for ( const id in cluster . workers ) cluster . workers [ id ] ?. process . kill ( 'SIGTERM' ) ;
89- process . exit ( ) ;
66+ logger . info ( `The process is going to exit with code ${ code } ` ) ;
9067} ) ;
9168
9269//#endregion
0 commit comments