SqlAlchemy“已经有太多客户端”错误

时间:2011-12-10 01:59:31

标签: python sqlalchemy pyramid sqlsoup

我是python和pyramid框架的新手。最近我被介绍到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大师的任何指针?

1 个答案:

答案 0 :(得分:1)

好像你在向你的Pyramid应用程序的每个请求上创建dbEngine1

为了正确使用webapp中的SqlSoup,您必须使用SA Sessions。

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

  

如何关闭此空闲连接

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