Skip to content

Commit d36c71f

Browse files
omdxpCopilot
andauthored
Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 8baa0dc commit d36c71f

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

api/src/app/index.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff 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
});

0 commit comments

Comments
 (0)