Javascript 未关闭MySql节点上的连接会导致超时

Javascript 未关闭MySql节点上的连接会导致超时,javascript,mysql,amazon-web-services,asynchronous,lambda,Javascript,Mysql,Amazon Web Services,Asynchronous,Lambda,我有一个关于AWS lambda的代码,可以查询AWS RDS MySQL数据库 每次需要插入数据库时,它都会运行此类: const mysql = require('mysql'); const config = require('../config.js'); const con = mysql.createConnection(config); async function insert_score_db(user,message_id,date_created,sprint){

我有一个关于AWS lambda的代码,可以查询AWS RDS MySQL数据库

每次需要插入数据库时,它都会运行此类:

const mysql = require('mysql');
const config = require('../config.js');
const con = mysql.createConnection(config);

async function insert_score_db(user,message_id,date_created,sprint){
    //con.connect(function(err) {
      //if (err) throw err;
       console.log("Connected!");
        var sql = "INSERT INTO  user_records (user_name,message_id, date_created,sprint) VALUES ('"+user+"', "+ message_id + ", '"+date_created+"',"+ sprint+");";
        
        con.query(sql, function (err, result) {
        if (err) throw err;
          console.log(result);

      });
      //con.end();
      //con.destroy();
    //});
}

module.exports={
    insert_score_db
};
我没有使用
**con.connect(函数(err){**
,因为任何
查询
调用都隐式建立了连接

我还注释了
**con.end()**
,因为此函数由嵌套的异步循环运行,并导致以下排队Hanshake:

ERROR   Uncaught Exception  {"errorType":"Error","errorMessage":"Cannot enqueue Handshake after invoking quit.","code":"PROTOCOL_ENQUEUE_AFTER_QUIT","fatal":false,"stack":["Error: Cannot enqueue Handshake after invoking quit.","    at Protocol._validateEnqueue
我去掉了
**con.end()**
,所有代码都正常运行,但函数的结尾是:
任务在210.10秒后超时
。我猜DB连接从未关闭到lambda执行无法完成

使用嵌套异步循环运行DB querys的潜在解决方案是什么?

con.end()
con.destroy()
放在
con.query()
的回调函数中