Почему pool.connection().cursor().execute() является предупреждающей операцией?

Я новичок в python и изучаю работу с БД с помощью DBUtils. Почему pool.connection (). Cursor (). Execute () слишком рано освобождает соединение для повторного использования?

Если он вам больше не нужен, вы должны немедленно вернуть его в пул с помощью db.close (). Таким же образом можно получить другое соединение.

Предупреждение: в многопоточной среде никогда не делайте следующее:

pool.connection (). cursor (). execute (...)

Это приведет к преждевременному освобождению соединения для повторного использования, что может быть фатальным, если соединения не являются поточно-ориентированными. Убедитесь, что объект подключения остается активным, пока вы его используете, например:

db = pool.connection ()

cur = db.cursor ()

cur.execute (...)

res = cur.fetchone ()

cur.close () # или del cur

db.close () # или del db

0 ответов

Другие вопросы по тегам