Python flask sqlalchemy与MySQL数据库失去连接
使用MySQL数据库和flask sqlalchemy时,我遇到了一个连接丢失错误(Python flask sqlalchemy与MySQL数据库失去连接,python,mysql,flask,flask-sqlalchemy,Python,Mysql,Flask,Flask Sqlalchemy,使用MySQL数据库和flask sqlalchemy时,我遇到了一个连接丢失错误(“查询期间与MySQL服务器的连接丢失”)。我已经调整了app.config['SQLALCHEMY\u POOL\u RECYCLE']以小于引擎超时时间。我还添加了一个pool\u pre\u ping,以确保数据库不会在两个请求期间消失。现在我不知道剩下什么了,这怎么可能仍然是一个问题,因为我的理解是,炼金术应该正确地处理开始和结束会议 作为一种解决方法,我考虑了一种方法,让flask sqlalchemy
“查询期间与MySQL服务器的连接丢失”
)。我已经调整了app.config['SQLALCHEMY\u POOL\u RECYCLE']
以小于引擎超时时间。我还添加了一个pool\u pre\u ping
,以确保数据库不会在两个请求期间消失。现在我不知道剩下什么了,这怎么可能仍然是一个问题,因为我的理解是,炼金术应该正确地处理开始和结束会议
作为一种解决方法,我考虑了一种方法,让flask sqlalchemy捕获丢失的连接响应,并动态重新启动连接。但我不知道怎么做。因此,我的问题是:
你知道什么可能导致我的连接中断吗
你认为,我最近的接球方式是个好主意还是你有更好的建议
如果这是一个好主意,我如何才能最方便地做到这一点?我不想用try-catch语句包装所有请求,因为我有很多代码
我不知道你的第一个和第二个问题的答案,但是对于第三个问题,我使用了一个decorator来包装我的所有函数,而不是直接在函数内部使用try/except。显式的pre_ping和会话回滚/关闭也以某种方式解决了我的连接丢失问题(mariadb是我使用的后端)
然后用decorator包装我的函数:
@manage_session
my_funtion(*args, **kwargs):
return "result"
您在应用程序中使用多线程吗?哪种mysql驱动程序?
@manage_session
my_funtion(*args, **kwargs):
return "result"