簡體   English   中英

使用節點殺死所有休眠的 mysql 池連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM