исчерпан пул соединений psycopg2 - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблема с Postgresql psycopg2. Я получаю ошибку:

ошибка выполнения с исключением: пул соединений исчерпан

Мой код:

from psycopg2 import pool
import pandas.io.sql as sqlio
import pandas as pd
db = pool.ThreadedConnectionPool(5, 100,host=POSTGRES['host'],
database=POSTGRES['database'],user=POSTGRES['username'],
password=POSTGRES['password'],port=POSTGRES['port'])


try:
    sql = "select * from role"  
    data = sqlio.read_sql_query(sql, db.getconn())
    return data.to_json(orient='records')
except Exception as e:
    print "error in executing with exception: ", e
    return pd.DataFrame({'empty' : []})

и этот запрос должен возвращать только 5 строк, но я получаю эту ошибку.

У вас есть идеи, почему я получаю эту ошибку?

Моя база данных Postgresql (средний экземпляр) развернута в общедоступном облаке.

Заранее спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

может показаться, что в какой-то момент вам нужно вернуть соединение обратно в пул, см .:

http://initd.org/psycopg/docs/pool.html#psycopg2.pool.AbstractConnectionPool.putconn

т.е. что-то вроде:

sql = "select * from role"  
try:
    conn = db.getconn()
    try:
        data = sqlio.read_sql_query(sql, conn)
    finally:
        pool.putconn(conn)
    return data.to_json(orient='records')
except Exception as e:
    print "error in executing with exception: ", e
    return pd.DataFrame({'empty' : []})
...