转载自:https://blog.youkuaiyun.com/javafance/article/details/81437729
pool.getConnection没有回调.
NodeJS中使用mysql连接池
function query(sql, sqlParams, callback) {
pool.getConnection(function (err, conn) {
if (err) {
callback(err, null, null);
} else {
conn.query(sql, sqlParams, function (qerr, vals, fields) {
callback(qerr, vals, fields);
});
}
// conn.release(); // not work!!!
pool.releaseConnection(conn);
});
};
exports.init = function (config) {
pool = mysql.createPool({
host: config.HOST,
user: config.USER,
password: config.PSWD,
database: config.DB,
port: config.PORT,
});
};
神坑:
并发访问时,通过conn.release()释放连接死活不成功,导致一定访问达到连接数上限后,pool.getConnection直接卡死没有任何的回调!
改成pool.releaseConnection(conn)才okay!
PS: 可以通过以下命令查看当前的mysql连接数:
mysqladmin -uroot -proot processlist
---------------------
作者:santi
来源:优快云
原文:https://blog.youkuaiyun.com/javafance/article/details/81437729
版权声明:本文为博主原创文章,转载请附上博文链接!
在NodeJS中使用mysql连接池时,通过conn.release()释放连接可能会失败,导致并发访问时连接数达到上限,pool.getConnection将不再回调。正确的做法是使用pool.releaseConnection(conn)来释放连接。
1万+

被折叠的 条评论
为什么被折叠?



