У меня установлено приложение nodejs в дроплете digitalocean.Я использую mysql в качестве базы данных и использую соединение с пулом через.
pool = mysql.createPool({
connectionLimit: 10,
host: "localhost",
user: "root",
password: "password",
database: "mydb",
supportBigNumbers: true,
bigNumberStrings: true,
charset : 'utf8mb4',
connectTimeout:500,
});
и использую соединение следующим образом.
socket.on('login', function (msg) {
pool.getConnection(function (err, con) {
if (err) {
throw err;
} else {
login(socket, con, io, msg);
}
});
});
Это из-за соединения с пулом или я неправильно делаешь?Я запустил все необходимые модули в начале сервера, но при необходимости разместил внутри него модуль require.
Один из кодов моего модуля выглядит следующим образом.
const checkSession = require('./checkSession').checkSession;
const checkCookie = require('./checkCookie').checkCookie;
module.exports = function (socket, con, io, msg) {
var obj = JSON.parse(JSON.stringify(msg));
var username = obj.loggedusername;
checkSession(socket, con, io, msg, function (returnValue) {
if (returnValue == "sessionOK") {
con.query("SELECT fullname FROM users WHERE username=?",[username], function(err, data){
if (err) throw err;
io.to(socket.id).emit("getdetailsresponse", {
fullname: data[0].fullname,
});
});
}
});
con.release();
}
Или это потому, что яне должно требовать что-то внутри модуля ???
Сначала сервер работает нормально с использованием процессора около 2-3%, но когда я вижу через час или два, я получаю высокое использование процессора как от mysql, так и от узла, инаконец, узел перестает отвечать.