国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于php數(shù)據(jù)庫事務的一個坑

RebeccaZhong / 2937人閱讀

摘要:從而導致了問題百思不得其解的時候去看了下文檔,發(fā)現(xiàn)了一個歷史遺留很久的后來我們通過臨時在事務的位置配置了解決了問題

在使用php的PDO擴展的時候發(fā)現(xiàn)的一個問題,在事務開啟之后,如果php與mysql之間的連接斷開了,會導致php直接記錄一個warning的異常,而不是直接拋出一個Exception

流程如下:

/**
 * 一個用戶財產(chǎn)變更的場景下
 */

try {
    // 1. 開啟事務

    /**
     * 2. 變更用戶財產(chǎn),增加財產(chǎn)變更的流水記錄
     */

    // 3. 提交事務
} catch (Exception $e) {
    // 4. 回滾事務

    // 5. 記錯誤日志

    // 6. 拋出異常
}

// 7. 發(fā)布用戶財產(chǎn)變更的廣播

以上的操作可以簡單的分成五類,在以前我的認知當中,操作事務的大致流程就是上面的樣子,沒有異常拋出則事務就是提交成功了的
但是直到有一天數(shù)據(jù)庫異常,有一個事務已經(jīng)開啟了,處在上面的1-2的過程當中,數(shù)據(jù)庫直接掛掉,那么在步驟3提交事務的時候會直接出現(xiàn)一個warning級別的錯誤,"SQLSTATE[HY000]: General error: 2006 MySQL server has gone away" ,沒有捕獲到異常
所以在步驟7的后續(xù)步驟中,其他業(yè)務方拿到了那條沒有提交的流水id并進行了統(tǒng)計,但是實際上用戶的財產(chǎn)并沒有增加。從而導致了問題

百思不得其解的時候去看了下文檔,發(fā)現(xiàn)了一個歷史遺留很久的bug:https://bugs.php.net/bug.php?...

后來我們通過臨時在事務的位置配置了set_error_handler解決了問題

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31224.html

相關文章

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

    摘要:前言在使用加載數(shù)據(jù)數(shù)據(jù)庫常見的優(yōu)化操作后端掘金一索引將放第一位,不用說,這種優(yōu)化方式我們一直都在悄悄使用,那便是主鍵索引。 Redis 內(nèi)存壓縮實戰(zhàn) - 后端 - 掘金在討論Redis內(nèi)存壓縮的時候,我們需要了解一下幾個Redis的相關知識。 壓縮列表 ziplist Redis的ziplist是用一段連續(xù)的內(nèi)存來存儲列表數(shù)據(jù)的一個數(shù)據(jù)結構,它的結構示例如下圖 zlbytes: 記錄整...

    Little_XM 評論0 收藏0
  • mongoDB4.0事務回滾辛酸歷程

    摘要:參考鏈接官方關于事務的介紹中文社區(qū)關于的介紹如果不想進行第二步,可以直接為你創(chuàng)建一個新的復制集我只是個前端啊,為什么要這么折磨我 主管前幾天發(fā)現(xiàn)mongoDB已經(jīng)升級到4.0了,迫不及待得讓我實現(xiàn)他期待已久的事務回滾,發(fā)現(xiàn)還是有很多坑啊!下面是我將已有的本地mongoDB升級到支持事務回滾的歷程,分享出來,有錯誤的地方歡迎指正!以mac為例哈 部署mongodb事務回滾 1.準備工作 ...

    wupengyu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<