File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -60,17 +60,31 @@ useContainer(Container); // eslint-disable-line react-hooks/rules-of-hooks
6060 Sentry . setupExpressErrorHandler ( app ) ;
6161
6262 // Graceful shutdown handler for logger file streams
63+ let server : ReturnType < Application [ "listen" ] > | undefined ;
6364 const shutdown = ( signal : string ) => {
6465 loggerService . logger . info ( "Received signal, closing logger streams" , "signal" , signal ) ;
65- loggerService . close ( ) ;
66- process . exit ( 0 ) ;
66+ if ( server ) {
67+ server . close ( ( ) => {
68+ loggerService . close ( ) ;
69+ process . exit ( 0 ) ;
70+ } ) ;
71+ // Force shutdown after timeout
72+ setTimeout ( ( ) => {
73+ loggerService . logger . error ( "Forced shutdown after timeout" ) ;
74+ loggerService . close ( ) ;
75+ process . exit ( 1 ) ;
76+ } , 10000 ) ;
77+ } else {
78+ loggerService . close ( ) ;
79+ process . exit ( 0 ) ;
80+ }
6781 } ;
6882
6983 process . on ( "SIGTERM" , ( ) => shutdown ( "SIGTERM" ) ) ;
7084 process . on ( "SIGINT" , ( ) => shutdown ( "SIGINT" ) ) ;
7185
7286 // Start it
73- app . listen ( PORT , ( ) => {
87+ server = app . listen ( PORT , ( ) => {
7488 const commonConfig = fsConfig ( NODE_ENV ) ;
7589 loggerService . logger . info ( "API Server started" , "url" , commonConfig . api . url ) ;
7690 } ) ;
You can’t perform that action at this time.
0 commit comments