我正在使用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)
还是让节点完成他的工作?
答案 0 :(得分:0)
实际上是。如果在客户端未正确关闭连接,则服务器会保持该连接,直到达到超时。由于连接数量有限,因此应尝试关闭打开的连接。
虽然问题不是很多,除非你有很多的连接或者服务器上的RAM已经紧张了。 RAM可能是一个问题,因为服务器分配1MB /连接的堆栈,所有游标都保留,直到连接关闭(超时或显式)或光标用尽。
总而言之:是的,最好关闭与服务器建立的连接以提高资源效率,但如果不这样做,则不是TEOTWAWKI。
由于信号处理程序没有太大问题,请使用它。