Django/Postgres:FATAL:剩余的连接插槽保留给非复制超级用户连接

2024-06-08 01:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我收到了一个关于连接插槽不足的错误,以及许多Heroku错误:

H18 - Request Interrupted
H19 - Backend connection timeout
H13 - Connection closed without response
H12 - Request timeout

错误

django.db.utils.OperationalError in /

FATAL: remaining connection slots are reserved for non-replication superuser connections

当前应用程序设置:

  • Django 1.7.4款
  • 博士后
  • Heroku(2x 2 dynos,标准-2)5ms响应时间,13rpm吞吐量

对于应该或不应该在Django应用程序中执行querysets,或者何时关闭数据库连接,是否有通用的良好实践?在

我以前从未经历过这种错误。我增加了heroku上的dynos,分配了更多的RAM,我仍然遇到同样的问题。在

我在堆栈溢出问题上也发现了类似的问题,但我还没有弄清楚到底是什么导致了这个问题。在

我在模型方法、视图、装饰器视图、上下文处理器中都有查询集。在

我的第一个倾向是,在某个地方执行了一个低效的查询集,导致连接保持打开状态,最终在有足够多的人访问该网站时导致应用程序崩溃。在

感谢任何帮助。谢谢。在


Tags: django视图backend应用程序herokurequest错误timeout
1条回答
网友
1楼 · 发布于 2024-06-08 01:36:08

我意识到我在procfile中使用django服务器。我不小心把它注释掉了,并把它交给了heroku,而不是使用gunicorn。一旦我用同样的heroku计划转到gunicorn,问题就解决了。在

使用生产级应用程序服务器确实有很大的不同。也不要在一天中容易出错的疯狂时间编写代码。在

相关问题 更多 >

    热门问题