Подтвердить что ты не робот

Время соединения Sql Alchemy Out

Я использую sqlalchemy с MySQL и выполняю запрос с выражением sql. Когда вы выполняете несколько запросов, время истекает. Я нашел ответ , но мне это не ясно. Пожалуйста, кто-нибудь может мне помочь?

TimeoutError: предел QueuePool превышения переполнения 5-го уровня 10, тайм-аут соединения, тайм-аут 30

4b9b3361

Ответ 1

Всякий раз, когда вы создаете новый сеанс в своем коде, убедитесь, что вы его закрыли. Просто позвоните session.close()

Когда я получил эту ошибку, мне показалось, что я закрываю все свои сеансы, но я внимательно посмотрел и был один новый метод, где я не был. Закрытие сеанса в этом методе исправило эту ошибку для меня.

Ответ 2

В многопоточном режиме, если ваш параллельный номер запроса намного больше, чем размер пула подключений db, он выкинет предел пула Queue из переполнения размера 5 10, достигнув error. попробуйте с этим:

engine = create_engine('mysql://', convert_unicode=True, 
pool_size=20, max_overflow=100)

to add the pool size

Добавить: метод выше не является правильным. Фактическая причина заключается в том, что пул соединений db израсходован и никакого другого доступного соединения. Скорее всего, вам не удастся освободить соединение. Например:

@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()