考慮以下是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我已經(jīng)看到日志文件包含以下數(shù)據(jù):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通過打開多個連接而不是關閉多個連接,這是否在服務器上造成了開銷?它是否在內(nèi)部處理連接池?但是在MongoDB Docs中提到“這是不使用請求池的應用程序的正常行為”有人可以幫助我理解這一點嗎?
3 回答

富國滬深
TA貢獻1790條經(jīng)驗 獲得超9個贊
MongoDB將數(shù)據(jù)庫連接池化以提高效率,因此在mongodb.log中打開許多連接并不罕見
但是,當應用程序完全關閉時,關閉所有連接很有用。此代碼是執(zhí)行此操作的最佳選擇。
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected on app termination');
process.exit(0);
});
});
- 3 回答
- 0 關注
- 1164 瀏覽
添加回答
舉報
0/150
提交
取消