具體問題:前端
第二個問題呢就是 緣由大概是醬紫的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:我今天真的是有點懷疑本身是否是入錯行了真的)