mysql - NodeJS 和 Mysql。在终止之前调用 connection.end() 是否可以接受?

标签 mysql node.js amazon-web-services aws-lambda

我想使用来自 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 上的待处理功能请求。

https://forums.aws.amazon.com/thread.jspa?threadID=216000

关于mysql - NodeJS 和 Mysql。在终止之前调用 connection.end() 是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517664/

相关文章:

php - 将旧的 mySQL/RH 迁移到新的 mySQL/Ubuntu

mysql - sql中的表行作为新表

python - 在Amazon EMR上运行mrjob,不支持t2.micro

python-3.x - AWS 未知服务文本问题

ios - Amazon SNS 移动推送 - 如何批量订阅一个主题的端点?

sql - MySQL 针对多个条件返回不同的结果

mysql - 具有多个外连接的笛卡尔连接到公共(public)根

node.js - 错误 : ENOENT when renaming file in node/express app

javascript - 无法通过 SSH 连接到 MySQL

node.js - 在 Node 生成命令中回显 bash 变量