【发布时间】:2014-09-11 13:15:55
【问题描述】:
我在我的应用程序 mongodb(未分片)中使用内置集群模块的 nodejs 用于 每个集群(worker)连接中的存储是使用 mongoose.createConnection 方法进行的,并在插入数据后关闭。
但我期望的是,每当发出请求时,它都会打开与数据库的连接并处理请求并关闭连接。
但是我注意到,当我检查 mongodb 日志时,连接仍然打开,并且它的计数略大于处理器/(集群节点)的数量。
我把 poolSize:1,autreconect:false 即使在调用 close() 方法后仍然有一些连接没有关闭。
我的观察是当连接错误发生时连接没有关闭 请帮帮我
我正在使用以下脚本来获取连接。
module.exports.getDb = function () {
var dburl = 'mongodb://localhost/DB';
db = mongoose.createConnection(dburl, {
server: {
socketOptions: {
keepAlive: 1,
connectTimeoutMS: 30000
},
auto_reconnect: false,
poolSize: 1
}
}, function (err) {
console.log(err)
});
db.on('error', function (err) {
console.log(err + " this is error");
db.close();
});
return db;
}
我在evey查询回调结束时使用db.close()关闭连接。
【问题讨论】:
-
我们可以看看一些代码吗?
-
我通过添加我的连接脚本更新了问题,这是在工作进程中。