From 2d69f486a695f147faa9857213f98c50c920ffdc Mon Sep 17 00:00:00 2001 From: Pranav Date: Fri, 5 Dec 2025 11:40:25 +0530 Subject: [PATCH] Handle SIGTERM and SIGINT signal --- src/index.ts | 18 +++++++++++++++++- .../docker-compose-mock-lockdrop-watcher.yml | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index a2c5363..1f9f2f9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -19,9 +19,25 @@ async function startServer() { const PORT = process.env.PORT || 6000; - app.listen(PORT, () => { + const httpServer = app.listen(PORT, () => { console.log(`🚀 Server ready at http://localhost:${PORT}${server.graphqlPath}`); }); + + const shutdown = async (signal: string) => { + console.log(`${signal} received, shutting down gracefully...`); + + httpServer.close(() => { + console.log('HTTP server closed'); + }); + + await server.stop(); + console.log('Apollo server stopped'); + + process.exit(0); + }; + + process.on('SIGTERM', () => shutdown('SIGTERM')); + process.on('SIGINT', () => shutdown('SIGINT')); } startServer().catch(error => { diff --git a/stack/stack-orchestrator/compose/docker-compose-mock-lockdrop-watcher.yml b/stack/stack-orchestrator/compose/docker-compose-mock-lockdrop-watcher.yml index be85da8..cbdbb67 100644 --- a/stack/stack-orchestrator/compose/docker-compose-mock-lockdrop-watcher.yml +++ b/stack/stack-orchestrator/compose/docker-compose-mock-lockdrop-watcher.yml @@ -7,7 +7,7 @@ services: VERIFIED_PARTICIPANTS_PATH: /tmp/watcher-data/verified-participants.json GENERATED_WATCHER_EVENTS_OUTPUT_PATH: /tmp/watcher-data/generated working_dir: /app/ - command: "node --enable-source-maps dist/index.js" + command: ["node", "--enable-source-maps", "dist/index.js"] volumes: - watcher-data:/tmp/watcher-data ports: -- 2.45.2