我对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数据库(中型实例)部署在公共云上。
提前谢谢你
发布于 2018-09-12 11:44:48
似乎需要在某个时候将连接返回到池,请参见:
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' : []})https://stackoverflow.com/questions/52184847
复制相似问题