【问题标题】:SqlAlchemy "too many clients already" errorSqlAlchemy“已经有太多客户”错误
【发布时间】:2012-01-17 05:41:45
【问题描述】:

我对 python 和金字塔框架相当陌生。最近我被介绍给 SQLSoup 来处理我的数据库(postgres)需求。

dbEngine1 = SqlSoup(settings['sqlalchemy.db1.url'])
users = dbEngine1.users.fetchall()

一切都很好,但是在使用金字塔应用程序的短时间内,我收到了这个错误消息。我必须杀死金字塔以释放 postgres 中的所有空闲连接(在抛出异常之前大约有 50 个空闲连接)

sorry, too many clients already

我的问题是,如何关闭这个空闲的连接,我尝试添加如下所示的一行代码,但它没有帮助。

dbEngine1 = SqlSoup(settings['sqlalchemy.db1.url'])
users = dbEngine1.users.fetchall()
dbEngine1.engine.connect().close()

任何来自 SQLAlchemy 大师的指针?

【问题讨论】:

    标签: python sqlalchemy pyramid sqlsoup


    【解决方案1】:

    似乎您在对您的 Pyramid 应用程序的每个请求上都创建了 dbEngine1

    为了在 webapp 中正确使用 SqlSoup,您必须使用 SA 会话。

    请参阅this page 上的“访问会话”部分。

    如何关闭这个空闲的连接

    SqlSoup 等原始 SA 使用连接池,池中的每个连接处于空闲状态 util 查询执行。此连接池必须创建一次。

    【讨论】:

    • “访问会话”的链接断开
    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2020-07-04
    • 2018-06-20
    相关资源
    最近更新 更多