от
Я разрабатываю бэкэнд с Node.js и MySQL. Иногда к базе данных> 50 000 нужно выполнить огромное количество запросов, и я использую пул соединений. Мой вопрос: что происходит с запросом после его отклонения из-за исчерпания пула? Будет ли оно стоять в очереди, пока соединение не станет доступным, а затем выполнится? Или это просто никогда не будет выполнено? Есть действительно похожие вопросы, но ответы не подчеркнули мою точку зрения, они просто рекомендовали увеличить размер лимита.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Может быть. Есть варианты, которые вы можете установить, чтобы изменить поведение. Смотрите https://github.com/mysqljs/mysql#pool-options Запрос может ждать в очереди для свободного соединения или нет. Это основано на опции
waitForConnections
. Если для этой опции задано значение false, запрос немедленно возвращает ошибку, а не ждет. Если больше чем
queueLimit
запросов уже ожидают, новый запрос немедленно возвращает ошибку. Значение по умолчанию равно 0, что означает, что очереди нет ограничений. Запрос будет ожидать максимум
acquireTimeout
миллисекунд, затем, если он все еще не получит свободное соединение, вернет ошибку. П.С .: Я не использую Node.js, я просто прочитал это в документации.     
...