У меня возникла проблема, когда я пытаюсь использовать базу данных Serverless Aurora как часть моего приложения.
Проблема заключается в том, что когда база данных холодная, времяустановить соединение может быть больше, чем 30 секунд (из-за раскрутки дБ) - кажется, это больше, чем тайм-аут по умолчанию в Sequelize (с использованием mysql), и, насколько я вижу, я не могу найти какой-либо другой способ увеличить этотайм-аут или, возможно, мне нужен какой-то способ повторной попытки подключения?
Вот мой текущий конфиг:
const sequelize = new Sequelize(DATABASE, DB_USER, DB_PASSWORD, {
host: DB_ENDPOINT,
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 2,
min: 0,
acquire: 120000, // This needs to be fairly high to account for a
serverless db spinup
idle: 120000,
evict: 120000
}
});
Пара дополнительных моментов: если база данных прогрелась, то все работает отлично.Поддержание базы данных в «горячем» состоянии, хотя она и будет работать технически, отчасти сводит на нет необходимость иметь ее в качестве безсерверной базы данных (по соображениям стоимости).Я открыт для того, чтобы просто заставить моего клиента повторить вызов API в случае, если тайм-аут является ошибкой соединения.
Вот журналы на случай, если они вообще помогут.
{
"name": "SequelizeConnectionError",
"parent": {
"errorno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"fatal": true
},
"original": {
"errorno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"fatal": true
}
}