express.js和x2B的干净关闭;mongodb服务器(使用node.js)

express.js和x2B的干净关闭;mongodb服务器(使用node.js),node.js,mongodb,express,shutdown,Node.js,Mongodb,Express,Shutdown,我有node.js Web服务器,使用express.js和mongodb作为数据存储。此服务器由runit控制,我正在尝试实现一种方法来优雅地关闭服务器 我正在为SIGINT和SIGTERM实现信号处理程序,我知道您可以通过对createServer()返回的对象调用.close()停止侦听新连接。到目前为止还不错 但是,即使没有更多的请求,系统中可能已经有许多请求需要在关闭数据库之前完成 我使用的是mongodb ReplicaSet,我认为如果我立即调用db.close(),其中一些请求可

我有node.js Web服务器,使用express.js和mongodb作为数据存储。此服务器由
runit
控制,我正在尝试实现一种方法来优雅地关闭服务器

我正在为
SIGINT
SIGTERM
实现信号处理程序,我知道您可以通过对
createServer()
返回的对象调用
.close()
停止侦听新连接。到目前为止还不错

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


我使用的是mongodb ReplicaSet,我认为如果我立即调用
db.close()
,其中一些请求可能会以某种方式失败。是否有某种方法可以关闭数据库,以允许挂起的数据库查询完成,或者我是否必须手动使用+/-计数器来查看有多少“活动”查询挂起,然后等待关机,直到它达到0?

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

请随时在上登录该功能的票证