#mysql #node.js #discord.js
#mysql #node.js #discord.js
Вопрос:
У меня есть Discord.js бот с MySQL в качестве базы данных. Проблема, с которой я сталкиваюсь, заключается в том, что SQL перестал запрашивать после случайного количества раз, единственный способ, которым я мог это исправить, — перезапустить node.js приложение
Мой бот включает в себя множество запросов sql внутри sql-запроса, подобного :
sql.query(`SELECT xxxxx` , (err, res) => {
sql.query(`SELECT xxxxx`, (err, result) => {}
}
И мой код пула SQL :
const mysql = require('mysql');
const pool = mysql.createPool({
host : "localhost",
port : 3306,
user : "x",
password: "x",
database: 'x'
});
let sql = {};
sql.query = function(query, params, callback) {
pool.getConnection(function(err, connection) {
if(err) {
if (callback) callback(err, null, null);
return;
}
connection.query(query, params, function(error, results, fields) {
connection.release();
if(error) {
if (callback) callback(error, null, null);
return;
}
if (callback) callback(false, results, fields);
});
});
};
module.exports = sql;
Мой VPS работает нормально, мой SQL server тоже работает нормально. Я не уверен, что вызывает проблему.
Мое текущее решение запускает cronjob каждые 30 минут для перезапуска приложения, я не уверен, является ли это хорошей практикой или нет.
Комментарии:
1. Когда вы сказали «случайное количество раз», означает ли это, что иногда он останавливался через 2 минуты, иногда через 5 минут и т.д. вот так?
2. «Мое текущее решение запускает cronjob каждые 30 минут для перезапуска приложения, я не уверен, является ли это хорошей практикой или нет». Абсолютно нет, нужно вручную запускать приложение, потому что оно выходит из строя каждые 30 минут?? Что заставляет вас думать, что это хорошая идея??
3. убедитесь, что ваши соединения правильно передаются обратно в пул
4. @YunfeiChen Ах, это приятно знать. Каковы последствия постоянного перезапуска? И нет, это не сбой, приложение и команды работают просто отлично, не будут работать только те, у которых есть SQL-запросы.
5. @YunfeiChen Ах, это немного иронично, поскольку я создаю бота для проверки, будет не весело, если кому-то придется ждать 5 минут, чтобы просто присоединиться к серверу. Спасибо за предупреждение, мне нужно выяснить, что не так с моим обработчиком SQL.