Node.js SIGTERM实现注意事项
Node.js SIGTERM implementation considerations
我有一个无状态node.js应用程序。它是一个api实现与express连接到mongoDB数据库。每个请求都完全独立于其他请求(因此是无状态的)。
我想实现一个SIGTERM,以便优雅地关闭,但我不知道我应该考虑什么。
我所知道的是我应该关闭我的数据库连接。但是,如果我这样做:
process.on('SIGTERM', function () {
server.close(function () { //Stops express
db.close(false, function() { //Closes database connection
process.exit(0);
});
});
});
我能保证这样做不会中断请求吗?如果没有,我如何知道是否正在发出请求以及如何等待请求完成?在此期间,我是否应该停止监听请求?如果有,怎么做?
提前感谢您的回答
假设server
是http.Server
实例,调用.close()
将停止服务器接受新的连接(文档),但现有的请求将继续运行,直到它们完成。
回调函数只有在所有请求都被处理完之后才会被调用,因此可以安全地假设此时可以关闭数据库连接(不再有任何请求侦听它)。
相关文章:
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- JS 字段验证 - 循环遍历对象,每个字段有三个数据注意事项
- 将消息从主 http 页面发送到 https iframe 时的安全注意事项
- 使用 EcmaScript 中的 WeakMap 时,时序问题注意事项
- 使用“new Function(..) ”的安全注意事项“(在渲染期间,表达式来自我的 Javascript 源代码)
- 注意事项将C#字符串编码为Javascript字符串
- 使用servlet从/WEB-INF/异步加载javascript:一般注意事项
- 注意到JSON.stringify的不同实现之间有一个奇怪的差异
- CSS/HTML/JS:构建移动布局网站时需要注意的事项
- Node.js SIGTERM实现注意事项
- 测试jQuery插件的资源/技术/注意事项
- 使用每个功能时的注意事项
- 使用javascript动态创建表单需要注意哪些事项