Почему 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