Sql Alchemy连接时间Out

时间:2010-07-29 09:16:23

标签: python session timeout sqlalchemy

我正在使用sqlalchemyMySQL,并使用sql表达式执行查询。执行一些查询时,它会超时。我找到了answer,但我不清楚。请问,任何人都可以帮助我吗?

  

TimeoutError:达到大小5溢出10的QueuePool限制,连接超时,超时30

2 个答案:

答案 0 :(得分:52)

每当您在代码中创建新会话时,请务必关闭它。只需致电session.close()

当我收到此错误时,我以为我正在关闭所有会话,但我仔细查看并且有一种新方法我不是。在该方法中关闭会话为我修复了此错误。

答案 1 :(得分:12)

在多线程模式下,如果并发请求数远远大于数据库连接池大小,则会将队列池限制大小为5溢出10达到 error 。试试这个:

engine = create_engine('mysql://', convert_unicode=True, 
pool_size=20, max_overflow=100)

to add the pool size

添加:上述方法不正确。实际原因是db连接池已用完,没有其他可用连接。最可能的情况是你错过了释放连接。例如:

@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()