我得到了
TimeoutError:达到大小5溢出10的QueuePool限制,连接超时,超时30
我见过这些问题:
以及他们的答案。我尝试了它们,我试图在very simplified codebase中重现我的问题。我无法重现它。
我该怎么做才能找到/解决问题?
例如,我可以在Python中获得QueuePool的当前“用法”吗?
(另外,但可能更好的另一个问题:为什么我不应该将队列溢出设置为-1?)
到目前为止我没有尝试的是设置app.config['SQLALCHEMY_POOL_RECYCLE']
(设置为here)。我想我必须将它设置为一个较低的值才能解决这个问题,但是我可能会在其他地方获得超时,对吧?
答案 0 :(得分:1)
对MySQL数据库运行show PROCESSLIST
以显示连接/池/用法。
TimeoutError: QueuePool limit of size 10 overflow 10 reached
( 10 + 10 = 20)。threaded=True
时,我只看到一个连接打开。提交或隐藏所有现有的更改,然后创建一个分支并开始剥离代码/逐个简化您的应用程序并查看问题是否仍然会弹出。
(与#2结合使用)尝试减少SQLALCHEMY_POOL_SIZE
Flask-SQLAlchemy设置,以便更快地重现错误。