国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

多庫事務問題,2個庫同時提交或同步滾回

quinn

問題描述

我要進行多庫操作時,事務是不是這樣的,會不會存第一個提交成功,第二個提交失敗,導致第一個不能滾回

   Db::connection('api_log')->beginTransaction();
        Db::connection('default')->beginTransaction();

        try {
            // 業(yè)務處理

            Db::connection('api_log')->commit();
            Db::connection('default')->commit();

        } catch (\Throwable $exception) {
            var_dump($exception);

            Db::connection('api_log')->rollBack();
            Db::connection('default')->rollBack();

        }
1014 3 3
3個回答

深藍

多庫事務,應該沒有這么簡單,最近我也有這個疑惑。

  • 暫無評論
第六人

這種多庫操作,就不要依賴事務,可以在代碼層面判斷,比如庫1的事務1先提交入庫(標記一個狀態(tài)字段,trans=1 表示還有其他庫的事務沒執(zhí)行完),如果庫2事務2也提交成功,則更新庫1的對應字段trans=2 表示數(shù)據(jù)執(zhí)行完成每一次,如果庫2事務2執(zhí)行失敗,則不更新庫1的數(shù)據(jù),或者可以做刪除操作,表示失敗,大概邏輯是這樣,就是通過代碼層面判斷。

  • 深藍 2024-08-08

    那如果在更新庫1對應字段trans=2的過程中出現(xiàn)問題呢?這就是一個死亡螺旋。

  • 第六人 2024-08-08

    不知道你說的出現(xiàn)問題是具體是指什么,那可以考慮把更新庫1 trans字段的邏輯丟到一個可靠隊列,確認更新成功ack,才刪除隊列,如果沒有ack成功,那只能把這個數(shù)據(jù)當成異常數(shù)據(jù)了,可以記錄日志排查原因?;蛘呖梢韵衲欠N分布式事務,雙方都確認成功才算成功

初試
  • 暫無評論
年代過于久遠,無法發(fā)表回答
??