【问题标题】:Is it useful to close a MongoDB connection in NodeJS when Ctrl + C is used?使用 Ctrl + C 时在 NodeJS 中关闭 MongoDB 连接是否有用?
【发布时间】:2015-10-27 14:48:31
【问题描述】:

我正在使用 MongoDB 编写 NodeJS 脚本。

没有过多的细节,脚本故意花费很长时间来执行,大部分时间我使用 CTRL + C 完成它。

当我这样做时,我编写了一些代码来正确关闭连接。

但我不知道这样做是有用还是绝对没用......

这是我的代码:

MongoClient.connect(url, function (err, db) {
    console.log('Connected correctly to server');

    /* Magic happens here */

    process.on('SIGINT', function () { //Should I do this ?
        console.log('Bye');
        db.close();
        process.exit();
    })
});

我应该使用process.on('SIGINT', fct) 还是让节点做他的工作?

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    其实是这样的。如果客户端未正确关闭连接,则服务器会保持该连接,直到达到超时。由于连接数有限,应尝试关闭打开的连接。

    这并不是问题太多,除非你有很多的连接或服务器上的RAM已经很紧张。 RAM 可能是个问题,因为服务器分配了一个 1MB/连接的堆栈,并且所有游标都会保留,直到连接关闭(通过超时或显式)或游标耗尽。

    长话短说:是的,关闭与服务器的连接以节省资源是个好主意,但如果不这样做,则不是TEOTWAWKI

    由于信号处理程序不是什么大问题,所以使用它。

    【讨论】:

      猜你喜欢
      • 2013-04-24
      • 2012-01-12
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多