擅长:python、mysql、java
<p>如果在应用程序中使用<code>debug=True</code>,并且加载了多个出错的页面或API端点,则可能会发生这种情况。在</p>
<p>原因是运行调试版本的应用程序会使错误页面中的实时调试器保持打开状态。这个实时调试器保留了处理请求的所有资源,以便您可以检查它们。这意味着数据库连接无法回收。在</p>
<p>你不应该对你的应用程序的生产版本使用调试模式(除了这样的问题之外,这是一个安全风险),而且调试器通常无论如何也不能工作(它是为flask测试服务器而设计的,而不是与gunicorn一起工作)。因此,在prod中,解决方案是关闭调试。在</p>
<p>如果您在使用调试模式的dev中遇到这个问题-这是一个限制。你不应该如此猛烈地攻击开发服务器,或者你可以增加限制。请注意,当正确地回收15个连接时,它们通常足以满足大量并发请求。只有在调试中,它们才会趋于耗尽。在</p>