我想使用来自 AWS Lambda(托管的 nodejs)的 mysql。
当几分钟内没有新请求出现时,Lambda 将自动终止 nodejs 实例。 由于这种 Lambda 行为,我不想调用 end(),否则它会使每个请求都执行连接-使用-结束循环。我希望连接(或池)在多个请求中存在。
如果没有调用 connection.end() 并且实例被终止,那会不会有问题? (会不会漏水之类的)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
index.handler = function(){
connection.query('SELECT x', function(err, rows, fields) {
// do something here
});
};
// * cannot call because potential incoming request still need to use.
// connection.end();
最佳答案
您可能最终会在某个时候收到“连接过多”错误。
到那时你最好的选择是在同一个调用中打开和关闭连接。
连接池是一个需要有效重用 lamdba 容器的用例,并且是 aws 上的待处理功能请求。
关于mysql - NodeJS 和 Mysql。在终止之前调用 connection.end() 是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517664/