use*_*968 10 python postgresql sqlalchemy psycopg2
我有一个Web应用程序超时问题,我怀疑错误是在数据库中.查询运行时间过长.
如何增加设置的允许运行时间?
我使用sqlalchemy
和使用数据库池psycopg2
.
我的数据库是Postgres数据库.
import psycopg2
import sqlalchemy.pool as pool
def generate_conn_string(db_name):
db_name = db_name.upper()
conn_string = "host='{}' port='{}' dbname='{}' user='{}' password='{}' ".format(
os.environ.get('DB_HOST_' + db_name),
os.environ.get('DB_PORT_' + db_name),
os.environ.get('DB_NAME_' + db_name),
os.environ.get('DB_USER_' + db_name),
os.environ.get('DB_PASSWORD_' + db_name))
return conn_string
def get_conn_():
db_name = "mydb"
conn_string = Pooling.generate_conn_string(db_name)
conn = psycopg2.connect(conn_string)
return conn
connection_pool = pool.QueuePool(get_conn, max_overflow=30, pool_size=5)
Run Code Online (Sandbox Code Playgroud)
我假设你在询问PostgreSQL中的语句超时.你使用SQLAlchemy的方式有点奇怪,但一个vanilla SQLAlchemy构造函数接受一个connect_args
可以用作这样的附加参数
engine = create_engine(..., connect_args={"options": "-c statement_timeout=5000"})
Run Code Online (Sandbox Code Playgroud)
请注意,超时以毫秒为单位.在您的情况下,您可以使用直接psycopg2/libpq的选项:
conn = psycopg2.connect(conn_string, , options='-c statement_timeout=5000')
Run Code Online (Sandbox Code Playgroud)
相关问题:使用sqlalchemy create_engine配置查询/命令超时?
归档时间: |
|
查看次数: |
416 次 |
最近记录: |