diff --git a/backend/src/app.ts b/backend/src/app.ts index 7f1c251..a5f0d96 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -28,8 +28,24 @@ app.use((err, req: Request, res: Response, next: NextFunction) => { nodesched.scheduleJob('regenerate data', '*/30 * * * * *', wxService.wrappedGenerateData) wxService.wrappedGenerateData(); -app.listen(PORT, () => { +const server = app.listen(PORT, () => { console.log( `application is listening on port ${PORT}`, ); }); + +const shutdown = (signal: string) => { + console.log(`${signal} signal received. Shutting down.`); + server.close((err) => { + if (err) { + console.error(`Failed to shut down server gracefully: ${err}`); + process.exit(1); + } + + console.log('Server closed'); + process.exit(0); + }); +}; + +process.on('SIGTERM', () => shutdown('SIGTERM')); +process.on('SIGINT', () => shutdown('SIGINT'));