我如何在Heroku上查看/调试Postgres数据库连接



我在Heroku上运行的Django应用程序目前正在崩溃,因为Too many connections for role "my_user"错误,我需要弄清楚发生了什么。我正在使用Heroku上的Postgress的基本版本,该版本提供了20个连接。

根据我的错误页面,导致错误的特定代码行是:

/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py in connect
...
conn = _connect(dsn, connection_factory=connection_factory, async=async)
...

我有一项工作,每60秒运行一次,如下所示。这是否可以在每次运行并保持其先前连接打开的新连接?我怀疑自从这份工作持续了几个小时以来,没有达到最大的联系。

clock.py文件(每60秒运行一次以发送任何排队的邮件):

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'anonqaproject.settings'
from apscheduler.scheduler import Scheduler
from post_office import utils
sched = Scheduler()
@sched.interval_schedule(minutes=1)
def timed_job():
    utils.send_queued_mail()
sched.start()
while True:
    pass

我在Heroku的Postgres经理的一些帮助下解决了这一点。我需要的是:

SELECT * FROM pg_stat_activity;

一旦我看到了每种连接的backend_startquery_start DateTimestamps,很明显,每60年代运行一次,这是我计划的工作打开一个新连接。现在,我必须弄清楚如何使其重复使用连接和/或关闭连接完成后。

最新更新