我收到了以下错误信息:
TimeoutError: 队列池大小为5,溢出10个已达上限,连接超时,超时时间为30
我看过了以下问题:
- Sql Alchemy QueuePool limit overflow
- SQLAlchemy raises QueuePool limit of size 10 overflow 10 reached, connection timed out after some time
以及它们的答案。我尝试过它们,并且在非常简化的代码库中尝试重现我的问题,但我无法重现它。
我该怎么做才能找到/修复问题?
例如,我可以在Python中获取当前队列池的“使用情况”吗?
(另外,但可能更好的一个问题是:为什么不应将队列溢出设置为-1?)
到目前为止,我还没有尝试设置app.config['SQLALCHEMY_POOL_RECYCLE']
(要在此处设置here)。我猜我必须将其设置为一个较低的值以解决此问题,但那样可能会在其他地方导致超时,对吗?
threaded=True
,多个用户是否可以同时使用网站(即使有长时间运行的查询)? - Martin Thomagunicorn
或uWSGI
这样的WSGI服务器,它将能够生成您的应用程序的多个实例。关于“您的生产应该使用WSGI服务器”的说明:我查看了Flask源代码,对于run()
函数,它说“不要在生产设置中使用run()
。 它不适用于生产服务器的安全性和性能要求。”您也可以在此处看到他们的说法:http://flask.pocoo.org/docs/0.12/deploying/ - Nathan Wailes