繁体   English   中英

关闭Node.js mongodb空闲连接

[英]Close Nodejs mongodb idle connection

我想在我的nodejs应用程序中关闭任何mongodb(2.6.8)连接,如果conn保持空闲状态超过5秒钟。 我可以想到一个解决方案,方法是每5秒检查一次连接状态,如果空闲,则关闭conn。

有没有更好的方法来处理这种情况?

如果我理解正确,则希望计算MongoDB连接保持打开状态的时间,如果连接超过某个阈值,则将其关闭。

您可以通过用自己的代码包装mongodb库来实现此目的,每次计算自上次操作以来经过了多长时间。

草图未运行:

var mongodb = require('mongodb');
var client;
var lastRun;

// Need to run it once
function init() {
    client =  = mongodb.MongoClient.connect(...);
    lastRun = new Date();
    checkConnectionTimeout();
}

function checkConnectionTimeout() {
    var newDate = new Date();
    var seconds = Math.abs((newDate.getTime() - lastRun.getTime()) / 1000);
    if (seconds > TIMEOUT) {
        // close the connection...
        client = null;
    }
}

function execute(func, args) {
    lastRun = new Date();
    if (client) {
        client[func](args);
    }
}

然后,您可以通过以下方式使用它:

mongoWrapper.init(); // once
mongoWrapper.execute(collection.find, criteria);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM