Что происходит с новыми запросами, когда пул соединений исчерпан? - PullRequest
1 голос
/ 04 июля 2019

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

Действительно, есть похожие вопросы, но ответы не подчеркнули мою точку зрения, они просто рекомендовали увеличить размер лимита.

1 Ответ

1 голос
/ 04 июля 2019

Может быть.

Существуют параметры, которые вы можете настроить для изменения поведения. Смотри https://github.com/mysqljs/mysql#pool-options

Запрос может ожидать в очереди свободного соединения или нет. Это основано на опции waitForConnections. Если для этой опции задано значение false, запрос немедленно возвращает ошибку, а не ждет.

Если более queueLimit запросов уже ожидают, новый запрос немедленно возвращает ошибку. Значение по умолчанию равно 0, что означает, что очереди нет ограничений.

Запрос будет ожидать максимум acquireTimeout миллисекунд, затем, если он все еще не получит бесплатное соединение, возвращает ошибку.

P.S .: Я не использую Node.js, я просто прочитал это в документации.

...