【发布时间】:2018-04-11 15:15:52
【问题描述】:
我正在开发一个 Flask API,并且我有以下代码来使用 Psycopg2 建立一个连接池。我想知道当程序终止时我应该考虑关闭连接池,我应该怎么做?
@contextmanager
def get_cursor(:
global connection_pool
if not cls.connection_pool:
cls.connection_pool = ThreadedConnectionPool(5, 25, dsn=PoolingWrap.generate_conn_string())
con = cls.connection_pool.getconn()
try:
yield con.cursor(cursor_factory=RealDictCursor)
finally:
cls.connection_pool.putconn(con)
【问题讨论】:
-
在寻求答案之前,我想知道您是否有理由不使用 sqlalchemy,它有一些方法可以帮助您处理这个问题。
-
你用的是什么服务器?
-
我同意@LuisOrduz,SQLAlchemy 是在 Flask 中进行数据库查询的推荐 ORM。 Flask-SQLAlchemy 库有据可查。
-
这与 Flask 或 SQLAlchemy 无关。一般的问题是connection_pool是否需要以任何方式关闭,是否可以安全完成。
-
@mart1n - 你试过用'with'吗? python.org/dev/peps/pep-0343
标签: python python-3.x flask psycopg2