成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

關(guān)于php數(shù)據(jù)庫(kù)事務(wù)的一個(gè)坑

RebeccaZhong / 3018人閱讀

摘要:從而導(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

相關(guān)文章

  • 數(shù)據(jù)庫(kù)收集 - 收藏集 - 掘金

    摘要:前言在使用加載數(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: 記錄整...

    Little_XM 評(píng)論0 收藏0
  • mongoDB4.0事務(wù)回滾辛酸歷程

    摘要:參考鏈接官方關(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)備工作 ...

    wupengyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<