Python 如何在Flask和SQLAlchemy上完全关闭postgresql事务空闲?

Python 如何在Flask和SQLAlchemy上完全关闭postgresql事务空闲?,python,postgresql,flask,sqlalchemy,Python,Postgresql,Flask,Sqlalchemy,我正在使用flask和sqlalchemy开发应用程序,使用PostgreSQL作为RDB。 我很好奇,当请求完成时,PostgreSQL不会删除空闲事务 下面是在flask上拆卸PostgreSQL事务的代码: @app.after_request def after_request(r): db.dispose() session.close() 但我仍然可以看到PostgreSQL的空闲事务处理过程 $ ps axu | grep postgres postgres 18

我正在使用flask和sqlalchemy开发应用程序,使用PostgreSQL作为RDB。 我很好奇,当请求完成时,PostgreSQL不会删除空闲事务

下面是在flask上拆卸PostgreSQL事务的代码:

@app.after_request
def after_request(r):
    db.dispose()
    session.close()
但我仍然可以看到PostgreSQL的空闲事务处理过程

$ ps axu | grep postgres
postgres 18127  0.9  1.0 326348  6612 ?        Ss   11:08   0:00 postgres: postgres mydb ::1(59013) idle

如何在应用程序代码中终止进程?

您看到的不是事务,而是没有打开事务的会话

大多数系统共用连接,以节省为每个事务设置和拆除连接的成本。最有可能的情况是,您看到一个连接保存在SQLAlchemy端的池中,等待更多的工作

只要它在事务中不是空闲的,就可以了

要控制此行为

检查pg_统计_活动了解更多详细信息,而不是依赖ps