文档中心
探索 DWeb 框架的无限可能,构建下一代高性能 Web 应用
优雅关闭 (shutdown)
DWeb 框架提供了优雅关闭功能,确保服务器在关闭时能够正确处理未完成的请求和清理资源。
快速开始
基本使用
Code
工作原理
Code
完整示例
Code
Docker 环境
在 Docker 容器中,优雅关闭特别重要:
Code
Code
关闭处理器执行顺序
Code
API 参考
registerShutdownHandler(handler)
注册一个关闭处理器,在服务器关闭时执行。
Code
setupSignalHandlers(server)
设置系统信号监听器,自动处理 `SIGTERM` 和 `SIGINT` 信号。
Code
gracefulShutdown(signal, server)
手动触发优雅关闭流程。
Code
最佳实践
- 注册所有资源清理:数据库连接、Redis 连接、文件句柄、定时器、WebSocket 连接
- 处理异步操作:确保所有异步操作在关闭前完成,使用
await等待异步清理 - 错误处理:关闭处理器中的错误不会阻止其他处理器执行,记录所有错误以便调试
- 测试优雅关闭:在开发环境中测试关闭流程,确保所有资源正确清理
注意事项
- 优雅关闭仅在收到
SIGTERM或SIGINT信号时触发 - 强制终止(
SIGKILL)无法被捕获,不会执行关闭处理器 - 确保关闭处理器不会执行过长时间的操作
- 在生产环境中,确保进程管理器配置了合理的超时时间