gpt4 book ai didi

python - 在 try-except block 中关闭游标后如何关闭连接?

转载 作者:行者123 更新时间:2023-11-29 15:50:48 25 4
gpt4 key购买 nike

我正在使用 RDS 实例在 Lambda 函数(Python 3.6)中执行代码。问题是如果我不执行 conn.close() ,RDS 中的连接数就会增加。这将导致随后 API 响应出现错误[内部服务器错误]。

事情是我们在finally block 中尝试过,但没有得到下面给出的正确输出。

try:
conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, port=3268, connect_timeout=30)
except:
logger.error("ERROR: Unexpected error: Could not connect to MySql instance.")
sys.exit()
def handler(event, context):
try:
with conn.cursor() as cur:
cur.execute('SELECT * from OrderMaster')
cur.close()
return {'statusCode':200,"headers":{"access-control-allow-origin":"{}".format(headers)},"body":json.dumps(out)}
except Exception as e:
logger.error("error")
finally:
conn.close()

最佳答案

我想不出在处理函数之外打开连接但在处理函数内部关闭连接的原因。使用处理函数内的 with 语句打开连接。

def handler(event, context):
try:
with pymysql.connect(rds_host, user=name, passwd=password, db=db_name, port=3268, connect_timeout=30) as conn
with conn.cursor() as cur:
cur.execute('SELECT * from OrderMaster')
return {'statusCode':200,"headers":{"access-control-allow-origin":"{}".format(headers)},"body":json.dumps(out)}
except Exception as e:
logger.error("error")

您也不需要关闭游标,因为 with 语句已经为您完成了该操作。这也适用于连接。

关于python - 在 try-except block 中关闭游标后如何关闭连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56772934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com