摘要:從而導(dǎo)致了問(wèn)題百思不得其解的時(shí)候去看了下文檔,發(fā)現(xiàn)了一個(gè)歷史遺留很久的后來(lái)我們通過(guò)臨時(shí)在事務(wù)的位置配置了解決了問(wèn)題
在使用php的PDO擴(kuò)展的時(shí)候發(fā)現(xiàn)的一個(gè)問(wèn)題,在事務(wù)開(kāi)啟之后,如果php與mysql之間的連接斷開(kāi)了,會(huì)導(dǎo)致php直接記錄一個(gè)warning的異常,而不是直接拋出一個(gè)Exception
流程如下:
/** * 一個(gè)用戶財(cái)產(chǎn)變更的場(chǎng)景下 */ try { // 1. 開(kāi)啟事務(wù) /** * 2. 變更用戶財(cái)產(chǎn),增加財(cái)產(chǎn)變更的流水記錄 */ // 3. 提交事務(wù) } catch (Exception $e) { // 4. 回滾事務(wù) // 5. 記錯(cuò)誤日志 // 6. 拋出異常 } // 7. 發(fā)布用戶財(cái)產(chǎn)變更的廣播
以上的操作可以簡(jiǎn)單的分成五類,在以前我的認(rèn)知當(dāng)中,操作事務(wù)的大致流程就是上面的樣子,沒(méi)有異常拋出則事務(wù)就是提交成功了的
但是直到有一天數(shù)據(jù)庫(kù)異常,有一個(gè)事務(wù)已經(jīng)開(kāi)啟了,處在上面的1-2的過(guò)程當(dāng)中,數(shù)據(jù)庫(kù)直接掛掉,那么在步驟3提交事務(wù)的時(shí)候會(huì)直接出現(xiàn)一個(gè)warning級(jí)別的錯(cuò)誤,"SQLSTATE[HY000]: General error: 2006 MySQL server has gone away" ,沒(méi)有捕獲到異常
所以在步驟7的后續(xù)步驟中,其他業(yè)務(wù)方拿到了那條沒(méi)有提交的流水id并進(jìn)行了統(tǒng)計(jì),但是實(shí)際上用戶的財(cái)產(chǎn)并沒(méi)有增加。從而導(dǎo)致了問(wèn)題
百思不得其解的時(shí)候去看了下文檔,發(fā)現(xiàn)了一個(gè)歷史遺留很久的bug:https://bugs.php.net/bug.php?...
后來(lái)我們通過(guò)臨時(shí)在事務(wù)的位置配置了set_error_handler解決了問(wèn)題
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/31224.html
摘要:前言在使用加載數(shù)據(jù)數(shù)據(jù)庫(kù)常見(jiàn)的優(yōu)化操作后端掘金一索引將放第一位,不用說(shuō),這種優(yōu)化方式我們一直都在悄悄使用,那便是主鍵索引。 Redis 內(nèi)存壓縮實(shí)戰(zhàn) - 后端 - 掘金在討論Redis內(nèi)存壓縮的時(shí)候,我們需要了解一下幾個(gè)Redis的相關(guān)知識(shí)。 壓縮列表 ziplist Redis的ziplist是用一段連續(xù)的內(nèi)存來(lái)存儲(chǔ)列表數(shù)據(jù)的一個(gè)數(shù)據(jù)結(jié)構(gòu),它的結(jié)構(gòu)示例如下圖 zlbytes: 記錄整...
摘要:參考鏈接官方關(guān)于事務(wù)的介紹中文社區(qū)關(guān)于的介紹如果不想進(jìn)行第二步,可以直接為你創(chuàng)建一個(gè)新的復(fù)制集我只是個(gè)前端啊,為什么要這么折磨我 主管前幾天發(fā)現(xiàn)mongoDB已經(jīng)升級(jí)到4.0了,迫不及待得讓我實(shí)現(xiàn)他期待已久的事務(wù)回滾,發(fā)現(xiàn)還是有很多坑啊!下面是我將已有的本地mongoDB升級(jí)到支持事務(wù)回滾的歷程,分享出來(lái),有錯(cuò)誤的地方歡迎指正!以mac為例哈 部署mongodb事務(wù)回滾 1.準(zhǔn)備工作 ...
閱讀 3338·2021-11-15 11:37
閱讀 1177·2021-11-02 14:45
閱讀 3962·2021-09-04 16:48
閱讀 3654·2019-08-30 15:55
閱讀 819·2019-08-23 17:53
閱讀 1054·2019-08-23 17:03
閱讀 2163·2019-08-23 16:43
閱讀 2250·2019-08-23 16:22