node.js - 彻底关闭 express.js + mongodb 服务器(使用 node.js)

标签 node.js mongodb express shutdown

我有一个使用 express.js 和 mongodb 作为数据存储的 node.js 网络服务器。此服务器由 runit 控制,我正在尝试实现一种正常关闭服务器的方法。

我正在为 SIGINT 实现信号处理程序和 SIGTERM ,并且我知道您可以通过调用 .close() 来停止监听新连接。在 createServer() 返回的对象上.到目前为止一切顺利。

但是,即使没有更多的请求即将到来,系统中可能已经有许多请求需要在我关闭数据库之前完成。

我正在使用 mongodb ReplicaSet,我想如果我只调用 db.close()马上,其中一些请求可能会以某种方式失败。有什么方法可以以允许挂起的数据库查询完成的方式关闭数据库,还是我必须手动有一个 +/- 计数器来查看有多少“事件”查询挂起,然后等待关闭直到它达到 0 ?

最佳答案

您必须手动确保您处于干净状态才能关闭,因为驱动程序不会在关闭前等待清除剩余的操作。

欢迎在

上注册该功能的票证

https://github.com/mongodb/node-mongodb-native/issues/

关于node.js - 彻底关闭 express.js + mongodb 服务器(使用 node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15583237/

相关文章:

node.js - Mongoose - 通过 Id 找到 child

ruby-on-rails - 无法在Elasticsearch中根据 “missing”字段过滤出结果

node.js - 上传前在 Multer 中验证

javascript - 目录导入索引文件无法正常工作

.net - 如何将 .NET 代码连接到 node red 平台

arrays - 搜索包含项目数组的项目等node.js

node.js - 在 AZURE 上上传 PERN 堆栈

mongodb - 使用 GORM 获取 Mongo 集合时,找不到能够从类型 java.lang.Double 转换为类型 java.lang.Long 的转换器

node.js - 如何在子子数组中使用带有外键的 Mongoose 中的 $lookup 聚合?

node.js - Heroku 的 Rest API 使用插件