问题描述
最近我发现了一个奇怪的事件。被调用的查询被执行多次。更奇怪的事实是插入发生在不同的时间间隔,比如第一次在 3 分钟内,然后是 2 分钟,然后是 4 分钟的时间间隔。
我们使用了一个连接池来连接到 MysqL 数据库。连接池如下:
const MysqL = require("MysqL");
const connection = MysqL.createPool({
host : "localhost",user : "admin",password : "1233123",database : "abcde",connectionLimit : 100,});
connection.on('connection',(connection)=>{
console.log('Connected to the Database Successfully.');
});
module.exports = connection;
执行的查询如下:
Admin.multiplescan = (orderstatusdetails,result) => {
console.log("Started");
console.log("model",values);
console.log("model",ids);
console.log("model",status);
console.log("executiveId",executiveId);
sqlQuery = `INSERT INTO os( bookingId,status,description,type,signature,document1) VALUES ?`;
sql.query(sqlQuery,[values],(error,response) => {
if (error) {
console.log(error);
result(null,"error");
} else {
console.log("Success",response);
// result(null,response);
sqlQuery1 = `UPDATE cr SET job_sts = ? WHERE AWB IN ?`;
sql.query(sqlQuery1,[status,[ids]],response) => {
if (error) {
console.log(error);
} else {
console.log(response);
}
});
if (status === "inscan") {
sqlQuery5 = `UPDATE jb SET statusFlag ='1' WHERE job='delivery' AND (bookingId IN ? OR bookingId IN (SELECT id FROM cr c2 where AWB IN ?))`;
sql.query(sqlQuery5,[[ids],(err,res) => {
if (err) {
console.log("error",error);
} else {
console.log("res",res);
}
});
sqlQuery6 = `UPDATE cr SET deliveryAssignedTo = NULL WHERE id IN ? OR AWB IN ?`;
sql.query(sqlQuery6,res);
}
});
}
if (status === "outscan") {
sqlQuery2 = `INSERT INTO jb(bookingId,ExecutiveId,job,assignedOnDateTime,jobDateTime,serviceCharge,MaterialCost) VALUES ?`;
sql.query(sqlQuery2,[jobValues],response) => {
if (error) {
console.log(error);
} else {
console.log(response);
sqlQuery3 = `UPDATE cr SET deliveryAssignedTo = ? WHERE AWB IN ?`;
sql.query(sqlQuery3,[executiveId,response) => {
if (error) {
console.log(error);
} else {
console.log(response);
}
});
}
});
}
result(null,response);
}
});
console.log("Ended");
};
是否强制关闭或释放 MysqL 节点中的池连接? 为数据库备份设置主从设置会导致此问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)