首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS和Mysql。在terminate之前不调用connection.end()是可以接受的吗?

NodeJS和Mysql。在terminate之前不调用connection.end()是可以接受的吗?
EN

Stack Overflow用户
提问于 2016-05-30 12:32:48
回答 1查看 483关注 0票数 2

我想从AWS Lambda (托管nodejs)使用mysql。

当几分钟内没有新请求出现时,Lambda会自动终止nodejs实例。由于这种Lambda行为,我不想调用end(),因为否则它会将每个请求转换为connect-use-end循环。我希望连接(或池)在多个请求上存在。

如果不调用connection.end()并终止实例,会有问题吗?(会不会有泄漏之类的东西)

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2016-06-02 23:00:19

在某些时候,你可能会收到“连接太多”的错误。

在此之前,您最好的选择是在同一调用中打开和关闭连接。

连接池是一个需要有效重用lamdba容器的用例,也是aws上的一个未决功能请求。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37517664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档