Время соединения Sql Alchemy Out
Я использую sqlalchemy
с MySQL
и выполняю запрос с выражением sql. Когда вы выполняете несколько запросов, время истекает. Я нашел ответ , но мне это не ясно. Пожалуйста, кто-нибудь может мне помочь?
TimeoutError: предел QueuePool превышения переполнения 5-го уровня 10, тайм-аут соединения, тайм-аут 30
Ответы
Ответ 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()