SQLAlchemy создает потоки, когда не используется ORM или соединение? - PullRequest
0 голосов
/ 05 марта 2012

Мы используем SQLALchemy исключительно с целью преобразования независимого от БД кода в операторы SQL (посредством компиляции и явного использования диалекта).В любом случае мы не используем ORM и не создаем движки с помощью create_engine.

Я считаю, что использование этого способа не приводит к тому, что SQLA создает какое-либо соединение с потоком или БД в фоновом режиме.Это правда?

1 Ответ

0 голосов
/ 06 марта 2012

SQLAlchemy не порождает потоки и будет делать все в потоке, к которому вызывается определенная операция.

Единственное место, где вы можете столкнуться с причудами, ориентированными на синхронизацию, даже без порождения каких-либо потоков, встречается довольно редко.в случае, если определенные объекты являются мусором, собранным потоком очистки GC Python.Например, если вы работали с объектом Connection, не закрыли его, а затем позволили ему выпасть из области видимости, если он оказался мусором, собранным потоком gc, вы можете увидеть метод DBAPI connection.rollback(), вызываемый вGC, поскольку SQLAlchemy очищает соединения, когда сборщик мусора собирает их.Решение этой проблемы, если с DBAPI возникают проблемы, состоит в том, чтобы заранее закрыть ресурсы, такие как Connection и Session объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...