首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接池耗尽psycopg2

连接池耗尽psycopg2
EN

Stack Overflow用户
提问于 2018-09-05 12:13:13
回答 1查看 7.3K关注 0票数 5

我对Postgresql psycopg2有一个问题。我收到错误:

在执行异常时出错:连接池已耗尽

我的代码:

代码语言:javascript
复制
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数据库(中型实例)部署在公共云上。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-12 11:44:48

似乎需要在某个时候将连接返回到池,请参见:

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

例如:

代码语言:javascript
复制
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' : []})
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52184847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档