希望這應該是對某人的快速回答。我已經瀏覽了一些文檔,但仍未找到明確的答案。即使我在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