在MongoDB中,如果有时无法调用close(),如何确保关闭所有连接?

Joe*_*ang 8 mongodb node.js

我正在使用node.js和MongoDB,我有异步代码(async.queue)来更新MongoDB.

当队列中的所有任务完成后,我打电话

db.close()   // db is a Mongo client instance
Run Code Online (Sandbox Code Playgroud)

因此任务使用的所有连接都是关闭的.但是,在极少数情况下,我发现mongoDB日志中存在从未关闭的打开连接.因此,几周后,将有数百个连接从未关闭.

我研究并发现可能我应该设置此选项maxIdleTimeMS,但所有驱动程序都不支持此选项(node.js驱动程序不支持此选项).

即使我可以微调我的代码,以确保没有这样的条件close()没有被调用.我仍然想知道如果一个应用程序没有db.close()出于某种原因(或作为额外的保险)呼叫,有什么办法可以防止在MongoDB中挂起连接?

Mic*_*ski 3

nodejs mongodb 驱动程序在空闲时断开连接

处理 MongoDB 从 Node 断开/重新连接

看起来空闲一段时间后,连接被关闭。

目前尚不清楚使用哪个驱动程序,但在其中一篇文章中有指向文档的链接:

http://mongodb.github.io/node-mongodb-native/api- generated/server.html#server

将 keepAlive 设置为 0,您的连接将被终止...