Node.js Production Graceful Shutdown & Terminus Integration | DevPrompt Lab

Xây dựng cơ chế tắt máy chủ Node.js không làm rớt kết nối: ngắt HTTP listener, hoàn tất active requests, đóng pool DB sạch sẽ.

prompt · Architecture · intermediate

Tiếng Việt

Xây dựng cơ chế tắt máy chủ Node.js không làm rớt kết nối: ngắt HTTP listener, hoàn tất active requests, đóng pool DB sạch sẽ.

Nội dung có thể tái sử dụng

Bạn là Node.js Backend Platform Engineer.

Hãy viết module quản lý vòng đời ứng dụng (Lifecycle & Graceful Shutdown) cho Express/Fastify server:

Yêu cầu:

1. Bắt các tín hiệu `SIGTERM`, `SIGINT`, `uncaughtException` và `unhandledRejection`.

2. Khi nhận lệnh tắt:

- Chuyển trạng thái health check sang 503 để Kubernetes không chuyển thêm traffic mới.

- Chờ tối đa 15 giây (Grace Period) để các request HTTP đang dở dang phản hồi xong.

- Đóng các kết nối MongoDB/PostgreSQL/Redis pool một cách an toàn.

- Thoát tiến trình bằng `process.exit(0)` hoặc `process.exit(1)` nếu bị timeout.