Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask sqlalchemy与MySQL数据库失去连接_Python_Mysql_Flask_Flask Sqlalchemy - Fatal编程技术网

Python flask sqlalchemy与MySQL数据库失去连接

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数据库和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"