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:我今天真的是有點懷疑本身是否是入錯行了真的)

相關文章
相關標籤/搜索