[英]Running SLS Functions Locally for Unit Tests Results in Node Mysql Connection Pool 'Too Many Connections'
[英]Kill all sleeping mysql pool connections using node
我正在為我的項目使用節點並使用連接池,每當我查詢show processlist
我發現超過 200 個睡眠連接,即使我在每次這樣的查詢后釋放它 -
return new Promise((resolve, reject) => {
sql.getConnection(function (err, conn) {
if (err) {
conn.release();
reject(err)
}
conn.query('QUERY', function (err, rows) {
conn.release();
if (err) {
reject(err)
}
else {
resolve(rows[0])
}
})
})
})
我仍然找到了 200 多個睡眠連接。 有沒有辦法通過節點殺死無用的睡眠連接? 或者有這么多睡眠連接很好嗎?
提前致謝!
如果您正在使用連接池,則需要在使用完畢后關閉池中的所有連接。 否則連接將保持打開狀態,直到它們被 MySQL 服務器關閉。
pool.end(function (err) {
// all connections in the pool have ended
});
這個 GitHub 問題更詳細地解釋了釋放連接 ( conn.release()
) 和關閉底層連接池 ( pool.end()
) 之間的細微差別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.