2014-01-28 35 views
0

在Heroku上運行的我的Django應用程序當前崩潰了Too many connections for role "my_user"錯誤,我需要弄清楚發生了什麼。我在heroku上使用postgress的基本版本,提供20個連接。如何在Heroku上查看/調試Django應用程序的postgres數據庫連接?

的代碼導致錯誤的特定行,按我的錯誤頁面,就是:

/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 

回答

2

我想通了這一點與在Heroku的Postgres的經理一定的幫助。我需要的是:

SELECT * FROM pg_stat_activity; 

有一次,我看到了backend_startquery_start datetimestamps因爲這是明顯的每個連接這是我的計劃作業每次運行時打開一個新的連接 - 每60秒。現在我必須弄清楚如何在完成時重用連接和/或關閉連接。

+0

事實證明,運行管理命令後,Django 1.6.1不會自動關閉數據庫連接。所以我添加了'從django import db'和'db.close_connection()'到我的僞cron作業,現在連接不再堆積。 – user2916527

相關問題