相关疑难解决方法(0)

如何使Flask SQLAlchemy重用数据库连接?

我似乎无法让我的Flask应用程序关闭或重用数据库连接.我正在使用PostgreSQL 9.1.3和

Flask==0.8
Flask-SQLAlchemy==0.16
psycopg2==2.4.5
Run Code Online (Sandbox Code Playgroud)

当我的测试套件运行时,打开的连接数量会攀升,直到达到20(max_connections设置为止postgresql.conf),然后我看到:

OperationalError: (OperationalError) FATAL:  sorry, too many clients already
 None None
Run Code Online (Sandbox Code Playgroud)

我已经减少了代码,它只是调用点create_alldrop_all(但不发出任何SQL,因为没有型号).

我在日志中看到要检入的连接:

DEBUG:sqlalchemy.pool.QueuePool:Connection <connection object at 0x101c1dff0; dsn: 'dbname=cx_test host=localhost', closed: 0> checked out from pool
DEBUG:sqlalchemy.pool.QueuePool:Connection <connection object at 0x101c1dff0; dsn: 'dbname=cx_test host=localhost', closed: 0> being returned to pool
WARNING:root:impl   <-------- That's the test running
DEBUG:sqlalchemy.pool.QueuePool:Connection <connection object at 0x101c1dff0; dsn: 'dbname=cx_test host=localhost', closed: 0> checked out from pool
DEBUG:sqlalchemy.pool.QueuePool:Connection <connection object at 0x101c1dff0; dsn: …
Run Code Online (Sandbox Code Playgroud)

postgresql sqlalchemy flask flask-sqlalchemy

21
推荐指数
2
解决办法
6970
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1

postgresql ×1

sqlalchemy ×1