Я работаю на node.js
сервере, но я тоже работаю - но очень плохо, прямо в действительно большую ошибку:
Точно каждые восемь часов сервер закрывает соединение, аварийно завершает работу и выдает следующее сообщение об ошибке:
{ Error: Connection lost: The server closed the connection.
at Protocol.end (/home/node/app/node_modules/mysql/lib/protocol/Protocol.js:112:13)
at Socket.<anonymous> (/home/node/app/node_modules/mysql/lib/Connection.js:97:28)
at Socket.<anonymous> (/home/node/app/node_modules/mysql/lib/Connection.js:502:10)
at Socket.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1092:12)
at process._tickCallback (internal/process/next_tick.js:63:19) fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }
Я знаю, что эта ошибка происходит от mysql
, поэтому я потратил несколько часов на поиски решений. Но мне кажется, что ни один из них не работает.
- Перехват ошибки
PROTOCOL_CONNECTION_LOST
con.on('error', function(err) {
mysqlConnection();
})
con.on('close', function(err) {
mysqlConnection();
})
function mysqlConnection() {
con = mysql.createConnection({
host: "xy",
user: "xy",
password: "xy",
database: "xy",
});
con.connect(function(error) {})
}
- Отправка запросов в тайм-ауте
(3,600,000)
setInterval(function () {
con.query("SELECT * FROM xy", [], (err,result,fields)=>{})
}, 3600000); // every hour
- имитирует разрыв соединения
con.destroy();
Кажется, что ни одно из исправлений не работает для меня. Поэтому я надеюсь, что смогу получить обновление для некоторых уже устаревших вопросов & ответов Я нашел.