Lambda Node.js Mysql RDS超时
我在Node.js中编写的lambda函数在连接到RDS时超时 奇怪的是,这个超时只发生在第一个请求中 所有后续请求都与数据库一起工作,没有超时 知道为什么吗 仅供参考,不使用任何专有网络Lambda Node.js Mysql RDS超时,mysql,node.js,aws-lambda,rds,Mysql,Node.js,Aws Lambda,Rds,我在Node.js中编写的lambda函数在连接到RDS时超时 奇怪的是,这个超时只发生在第一个请求中 所有后续请求都与数据库一起工作,没有超时 知道为什么吗 仅供参考,不使用任何专有网络 var mysql = require('mysql'); var pool = mysql.createPool({ host : 'ahost', user : 'auser', password : 'apassword', database : 'adb', po
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'ahost',
user : 'auser',
password : 'apassword',
database : 'adb',
port : 3306
});
exports.handler = async (event, context) => {
let request = JSON.parse(event.body);
let question = request.question;
let answered = question.answered;
let sId = request.sid;
let questionnaireId = request.questionnaireId;
let hutk = request.hutk;
let questionId = question.question.id;
pool.getConnection((error, connection) => {
if (error) throw error;
let values = [];
if(Array.isArray(answered)){
let i = 0;
while(i < answered.length){
let td = [
questionnaireId,
sId,
questionId,
answered[i],
hutk
];
values.push(td);
i++;
}
} else {
let td = [
questionnaireId,
sId,
questionId,
answered,
hutk
];
values.push(td);
}
let delsql = "DELETE FROM answers WHERE sId= ? AND `key` = ?";
connection.query(delsql, [sId, questionId], function(err, result){
if(err) throw err;
});
let sql = "INSERT INTO answers (qId, sId, `key`, value, hutk) VALUES ?";
connection.query(sql, [values], function(err, result){
if(err) throw err;
console.log("Successfull Insert")
connection.release();
});
});
// TODO implement
const response = {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true
},
body: JSON.stringify({message : 'success'}),
};
return response;
};
var mysql=require('mysql');
var pool=mysql.createPool({
主持人:"ahost",,
用户:“auser”,
密码:“apassword”,
数据库:“adb”,
港口:3306
});
exports.handler=异步(事件、上下文)=>{
let request=JSON.parse(event.body);
让question=request.question;
让我们来回答;
设sId=request.sId;
让questionnaireId=request.questionnaireId;
让hutk=request.hutk;
让questionId=question.question.id;
pool.getConnection((错误,连接)=>{
如果(错误)抛出错误;
让值=[];
if(Array.isArray(已应答)){
设i=0;
while(igetConnection
。更重要的是,如果您有查询可以并行执行的代码(正如您在这里所做的),那么您必须非常明智地管理连接,并且只有在确定将使用它的所有查询都已完成后才释放它
请在此处阅读更多信息:()
考虑尝试以下方法:
var mysql = require('mysql');
var pool = mysql.createPool({
host: 'ahost',
user: 'auser',
password: 'apassword',
database: 'adb',
port: 3306
});
pool.on('connection', function (connection) {
console.log('Pool id %d connected', connection.threadId);
});
pool.on('enqueue', function () {
console.log('Waiting for available connection slot');
});
exports.handler = async (event, context) => {
let request = JSON.parse(event.body);
let question = request.question;
let answered = question.answered;
let sId = request.sid;
let questionnaireId = request.questionnaireId;
let hutk = request.hutk;
let questionId = question.question.id;
let values = [];
if (Array.isArray(answered)) {
let i = 0;
while (i < answered.length) {
let td = [
questionnaireId,
sId,
questionId,
answered[i],
hutk
];
values.push(td);
i++;
}
}
else {
let td = [
questionnaireId,
sId,
questionId,
answered,
hutk
];
values.push(td);
}
let delete_query = "DELETE FROM answers WHERE sId= ? AND `key` = ?";
pool.query(delete_query, [sId, questionId], function(err, result) {
if (err) throw err;
});
let insert_query = "INSERT INTO answers (qId, sId, `key`, value, hutk) VALUES ?";
pool.query(insert_query, [values], function(err, result) {
if (err) throw err;
console.log("Successfull Insert")
});
// TODO implement
const response = {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true
},
body: JSON.stringify({
message: 'success'
}),
};
return response;
};
var mysql=require('mysql');
var pool=mysql.createPool({
主持人:"ahost",,
用户:“auser”,
密码:“apassword”,
数据库:“adb”,
港口:3306
});
pool.on('connection',函数(connection){
console.log('池id%d已连接',connection.threadId);
});
on('enqueue',函数(){
log('等待可用的连接插槽');
});
exports.handler=异步(事件、上下文)=>{
let request=JSON.parse(event.body);
让question=request.question;
让我们来回答;
设sId=request.sId;
让questionnaireId=request.questionnaireId;
让hutk=request.hutk;
让questionId=question.question.id;
让值=[];
if(Array.isArray(已应答)){
设i=0;
while(i