我在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_start
和query_start
DateTimestamps,很明显,每60年代运行一次,这是我计划的工作打开一个新连接。现在,我必须弄清楚如何使其重复使用连接和/或关闭连接完成后。