0
我有一個類如下所示的連接類。這隻執行選擇語句。我有非池連接插入或更新。池共享增加連接,並在ER_CON_COUNT_ERROR結束
var _mysql = require('mysql');
function Connection()
{
//private variables and dependencies includes
//create mysql pool connection requires nodejs mysql this connection is used only for selects.
var _connectionSelect = _mysql.createPool({
host : _config.mySQLDB.select.dbHost,
user : _config.mySQLDB.select.dbUser,
password : _config.mySQLDB.select.dbPass,
database : _config.mySQLDB.select.dbName,
supportBigNumbers : true,
connectTimeout : 7000,
connectionLimit : 5,
queueLimit : 5
});
this.executeSelect = function(sql, callback, Message)
{
//connects to mysql.
_connectionSelect.getConnection(function(connectionError, Connection){
if(connectionError)
{
console.log(connectionError);
//throws error if connection or sql gone wrong
Message.add("error", 'serviceDown');
Message.add("devError", 'unknownError');
callback(false);
}
else
{
//executes the query passed
Connection.query(sql, function(error, rows) {
Message.incerementQuery();
if(error)
{
Connection.release();
console.log(error+sql);
//throws error if connection or sql gone wrong
Message.add("error", 'unknownError');
Message.add("devError", "seriousError", "Database errors at resource server side");
callback(false);
}
else
{
Connection.release();
//executes the callback function
callback(rows);
}
});
}
});
};
}
exports.Connection = Connection;
每當我想執行一個查詢我創造了這個類的一個實例。
我知道在MySQL中的默認併發連接是100,我想保留這個數字。
每當我嘗試運行我的應用程序,此連接池正在遞增每個選擇並很快達到100個連接。
正如您所看到的,我正在釋放成功或錯誤狀態下的連接。我很確定我一定在做錯事,但很難搞清楚。
是因爲我如何創建這個類的實例?我希望如果我供應
connectionLimit : 5
即使我創建這個類的很多實例,它應該只使用5連接?
注意:我在本地機器上只有一個此應用的實例。
對不起,我是這個流媒體I/O業務的新手。我喜歡集中的想法,但如果我無法對此進行分類,則可能需要爲每個查詢使用傳統的開放和關閉連接。任何幫助將非常感激。
非常感謝,
KARTHIK