gpt4 book ai didi

mysql - NodeJs + MySql 连接池 ER_WAIT_LOCK_TIMEOUT 有时只有

转载 作者:行者123 更新时间:2023-12-05 07:01:56 25 4
gpt4 key购买 nike

我遇到了随机问题,这不是每次都会发生。我正在使用 nodeJs 和连接池。并且我们有连接限制 50。这只发生在 INSERT 上。

嵌套查询 block 是否会导致此问题??

router.post('/userUpdateProfile', (req, res) => {

let selectedSports = [1,2];

mysqlPool = mysql.createPool(mysqlConfig);
const sql1 = `call userProfileUpdate(some params);`;

mysqlPool.query(sql1, [params], (err, response) => {

const sql2 = `call userSportMapDeleteAll(?);`;

mysqlPool.query(sql1, [params], (err1, response1) => {
var sqlBlk = "INSERT INTO UserSportMapping (userId, sportId) VALUES ?";

mysqlPool.query(sqlBlk, [tempSportArray], function(bErr) {
//Here sometimes ER_LOCK_WAIT_TIMEOUT
});
});
})
}

最佳答案

在不释放连接的情况下,您正在打开一个新连接。完成操作后需要关闭/释放连接。

如果这是一个原子过程。一起执行它们而不是嵌套它。

执行多条语句:

var connection = mysql.createConnection({multipleStatements: true});
connection.query('SELECT ?; SELECT ?', [1, 2], function(err, res) {
if (err) throw err;

console.log(res[0]);
console.log(res[1]);

});

check this out正确处理连接

编辑:

connection.query('SELECT ?; SELECT ?', [1, 2], function(err, res) {
// connection opened here
......

}); //connection released here

关于mysql - NodeJs + MySql 连接池 ER_WAIT_LOCK_TIMEOUT 有时只有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63717793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com