2013-03-23 79 views
2

我有使用express.js和mongodb作为数据存储的node.js web服务器。此服务器正受到runit的控制,我试图实现一种正常关闭服务器的方式。Express.js + mongodb服务器的清理关闭(使用node.js)

我在执行信号处理程序SIGINTSIGTERM,我知道,你可以停止通过调用createServer()返回的对象上.close()侦听新的连接。到现在为止还挺好。

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

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

回答