nic*_*ted 2 postgresql sqlalchemy flask flask-sqlalchemy
我正在使用PostgreSQL和Flas-SQLAlchemyFlask扩展名。
#app.py
app = Flask(__name__)
app.config['SQLALCHEMY_POOL_SIZE'] = 20
db = SQLAlchemy(app)
Run Code Online (Sandbox Code Playgroud)
#views.py
user = User(***)
db.session.add(user)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
请注意,我没有按照文档建议关闭连接:
您必须提交会话,但不必在请求结束时将其删除,Flask-SQLAlchemy会为您完成该操作。
但是,当我运行以下PostgreSQL查询时,我可以看到一些IDLE连接:
SELECT * FROM pg_stat_activity;
Run Code Online (Sandbox Code Playgroud)
这是否意味着Flask-SQLAlchemy无法关闭连接有问题?我很担心,因为最近我remaining connection slots are reserved for non-replication superuser connections出错了。
SQLAlchemy设置了一个连接池,由于性能原因,这些连接将保持打开状态。PostgreSQL有一个max_connectionsconfig选项。如果超过该值,则需要减少池数或增加最大连接数。假定默认最大值为100,并且您已将池设置为20,则更有可能的是,其他应用程序具有与该数据库的开放连接。max_connections是全局设置,因此它必须考虑连接到数据库服务器的所有应用程序。
| 归档时间: |
|
| 查看次数: |
2598 次 |
| 最近记录: |