postgreSql 报错 (psycopg2.errors.IdleInTransactionSessionTimeout) terminating connection due to idl...

具体问题:前端

 

 

 

 第二个问题呢就是 缘由大概是酱紫的mysql

在mysql超过wait_timeout后,链接会挂掉,服务就会报错 OperationalError: (_mysql_exceptions.OperationalError) (2006, 'MySQL server has gone away') ,因为也sqlalchemy关闭了autocommit,隐式使用了事务,还会有错误StatementError: (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back
网上的解决方式呢以下:程序员

解决方案一:打开autocommitsql

sqlalchemy打开autocommit后, 就会中止使用事务,生成的查询语句当即执行数据库

解决方案二:后端

在全部访问数据库的地方加异常捕获,报异常时rollbacksession

 

可是呢,在我这并很差使 (此时个人心里是崩溃的 妈妈耶 甚至怀疑本身是否是入错行了 做为一个前端 跑来搞后端代码 不知死活blablabla)spa

继续解决问题死马当活马医:server

由于个人代码里面就是用的解决方案二,所以对我没有卵用。blog

尝试:在每一个return 语句中 都加上一句:db.session.rollback() AND db.session.close()

ok,截止到目前解决了百分之五十的问题 可是我是个程序员因此我也不知道他是咋解决的 反正第二个截图里面的XXXrollback()已经不报了 可是持续的报第一个错误。

继续解决问题:

由于个人代码里有的执行了两句sql,在每一个sql语句执行完毕 我获得须要的值以后执行db.session.close()

至此 问题圆满解决。来自一个小前端面对后端问题瑟瑟发抖了很久以后的逼逼叨

以上。

(ps:我今天真的是有点怀疑本身是否是入错行了真的)

相关文章
相关标签/搜索