希望这应该是对某人的快速回答。我已经浏览了一些文档,但仍未找到明确的答案。即使我在SQLAlchemy中执行session.close(),我也有许多“闲置”连接。这些空闲连接是SQLAlchemy/Postgres处理连接池的方式吗?SQLAlchemy,PostgreSQL连接池
这是我用于检查数据库连接的活动
SELECT * FROM pg_stat_activity ;
下面是示例代码查询:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
application = Flask(__name__)
application.config.from_object('config')
db = SQLAlchemy(application)
class Brand(db.Model):
id = db.Column(db.Integer, primary_key=True)
@application.route('/')
def documentation():
all = Brand.query.all()
db.session.remove() #don't need this since it's called on teardown
return str(len(all))
if __name__ == '__main__':
application.run(host='0.0.0.0', debug=True)
您是否有描述此文档的链接?这留下了一些解释:http://docs.sqlalchemy.org/en/rel_1_0/core/pooling.html – Trent
@Trent [This](http://docs.sqlalchemy.org/en/latest/orm/session_transaction.html #managing-transactions)描述会话如何与连接相关操作。它告诉你一个会话通过'Engine.contextual_connect'并最终['Engine.connect']获得一个连接(http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.Engine .connect),然后描述池化行为。 – univerio
我非常希望将连接池绑回db。也就是说,连接上的特定“闲置”状态是否表明这可能是该池的一部分?我的主要目标是确定何时/如果我们有连接泄漏。 – Trent