考虑以下是Node.js代码:function My_function1(_params) { db.once('open', function (err){ //Do some task 1});}function My_function2(_params) { db.once('open', function (err){ //Do some task 2});}请参阅链接以获取最佳实践,该实践表明不要关闭任何连接https://groups.google.com/forum/#!topic/node-mongodb-native/5cPt84TUsVg我已经看到日志文件包含以下数据:Fri Jan 18 11:00:03 Trying to start Windows service 'MongoDB'Fri Jan 18 11:00:03 Service runningFri Jan 18 11:00:03 [initandlisten] MongoDB starting : pid=1592 port=27017 dbpath=\data\db\ 64-bit host=AMOL-KULKARNIFri Jan 18 11:00:03 [initandlisten] db version v2.2.1, pdfile version 4.5Fri Jan 18 11:00:03 [initandlisten] git version: d6...e0685521b8bc7b98fd1fab8cfeb5aeFri Jan 18 11:00:03 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49Fri Jan 18 11:00:03 [initandlisten] options: { config: "c:\mongodb\mongod.cfg", logpath: "c:\mongodb\log\mongo.log", service: true }Fri Jan 18 11:00:03 [initandlisten] journal dir=/data/db/journalFri Jan 18 11:00:03 [initandlisten] recover beginFri Jan 18 11:00:04 [initandlisten] recover lsn: 6624179Fri Jan 18 11:00:04 [initandlisten] recover /data/db/journal/j._0Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:59343 < lsn:6624179Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:118828 < lsn:6624179Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:238138 < lsn:6624179Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:835658 < lsn:6624179Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:955218 < lsn:6624179Fri Jan 18 11:00:04 [initandlisten] recover skipping application of section seq:3467218 < lsn:6624179通过打开多个连接而不是关闭多个连接,这是否在服务器上造成了开销?它是否在内部处理连接池?但是在MongoDB Docs中提到“这是不使用请求池的应用程序的正常行为”有人可以帮助我理解这一点吗?
3 回答
富国沪深
TA贡献1790条经验 获得超9个赞
MongoDB将数据库连接池化以提高效率,因此在mongodb.log中打开许多连接并不罕见
但是,当应用程序完全关闭时,关闭所有连接很有用。此代码是执行此操作的最佳选择。
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected on app termination');
process.exit(0);
});
});
- 3 回答
- 0 关注
- 1082 浏览
添加回答
举报
0/150
提交
取消