diff --git a/README.md b/README.md index bb5f3cd..740ae92 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ go run main.go DtmServer := "http://localhost:36789/api/dtmsvr" req := &gin.H{"amount": 30} // micro-service payload // DtmServer is the address of DTM micro-service - saga := dtmcli.NewSaga(DtmServer, dtmcli.MustGenGid(DtmServer)). + saga := dtmcli.NewSaga(DtmServer, shortuuid.New()). // add a TransOut subtraction,forward operation with url: qsBusi+"/TransOut", reverse compensation operation with url: qsBusi+"/TransOutCom" Add(qsBusi+"/TransOut", qsBusi+"/TransOutCom", req). // add a TransIn subtraction, forward operation with url: qsBusi+"/TransIn", reverse compensation operation with url: qsBusi+"/TransInCom" diff --git a/helper/README-cn.md b/helper/README-cn.md index 73c7c07..9ed7f06 100644 --- a/helper/README-cn.md +++ b/helper/README-cn.md @@ -85,7 +85,7 @@ go run main.go req := &gin.H{"amount": 30} // 微服务的载荷 // DtmServer为DTM服务的地址,是一个url DtmServer := "http://localhost:36789/api/dtmsvr" - saga := dtmcli.NewSaga(DtmServer, dtmcli.MustGenGid(DtmServer)). + saga := dtmcli.NewSaga(DtmServer, shortuuid.New()). // 添加一个TransOut的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransOutCom" Add(qsBusi+"/TransOut", qsBusi+"/TransOutCom", req). // 添加一个TransIn的子事务,正向操作为url: qsBusi+"/TransIn", 补偿操作为url: qsBusi+"/TransInCom" diff --git a/helper/README-en.md b/helper/README-en.md index bb5f3cd..740ae92 100644 --- a/helper/README-en.md +++ b/helper/README-en.md @@ -56,7 +56,7 @@ go run main.go DtmServer := "http://localhost:36789/api/dtmsvr" req := &gin.H{"amount": 30} // micro-service payload // DtmServer is the address of DTM micro-service - saga := dtmcli.NewSaga(DtmServer, dtmcli.MustGenGid(DtmServer)). + saga := dtmcli.NewSaga(DtmServer, shortuuid.New()). // add a TransOut subtraction,forward operation with url: qsBusi+"/TransOut", reverse compensation operation with url: qsBusi+"/TransOutCom" Add(qsBusi+"/TransOut", qsBusi+"/TransOutCom", req). // add a TransIn subtraction, forward operation with url: qsBusi+"/TransIn", reverse compensation operation with url: qsBusi+"/TransInCom" diff --git a/helper/bench/svr/http.go b/helper/bench/svr/http.go index 0c61c5a..6cac380 100644 --- a/helper/bench/svr/http.go +++ b/helper/bench/svr/http.go @@ -122,7 +122,7 @@ func qsAdjustBalance(uid int, amount int, c *gin.Context) error { // nolint: unp if strings.Contains(mode, "barrier") { barrier, err := dtmcli.BarrierFromQuery(c.Request.URL.Query()) logger.FatalIfError(err) - err = barrier.Call(txGet(), f) + err = barrier.CallWithDB(pdbGet(), f) logger.FatalIfError(err) } else { tx := txGet() diff --git a/test/busi/barrier.go b/test/busi/barrier.go index 7179e14..b80cb55 100644 --- a/test/busi/barrier.go +++ b/test/busi/barrier.go @@ -22,49 +22,49 @@ func init() { setupFuncs["BarrierSetup"] = func(app *gin.Engine) { app.POST(BusiAPI+"/SagaBTransIn", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, reqFrom(c).Amount, reqFrom(c).TransInResult) }) })) app.POST(BusiAPI+"/SagaBTransInCom", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, -reqFrom(c).Amount, "") }) })) app.POST(BusiAPI+"/SagaB2TransIn", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - err := barrier.Call(txGet(), func(tx *sql.Tx) error { + err := barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, reqFrom(c).Amount/2, reqFrom(c).TransInResult) }) if err != nil { return err } - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, reqFrom(c).Amount/2, reqFrom(c).TransInResult) }) })) app.POST(BusiAPI+"/SagaB2TransInCom", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - err := barrier.Call(txGet(), func(tx *sql.Tx) error { + err := barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, -reqFrom(c).Amount/2, "") }) if err != nil { return err } - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransInUID, -reqFrom(c).Amount, "") }) })) app.POST(BusiAPI+"/SagaBTransOut", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransOutUID, -reqFrom(c).Amount, reqFrom(c).TransOutResult) }) })) app.POST(BusiAPI+"/SagaBTransOutCom", dtmutil.WrapHandler(func(c *gin.Context) interface{} { barrier := MustBarrierFromGin(c) - return barrier.Call(txGet(), func(tx *sql.Tx) error { + return barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return SagaAdjustBalance(tx, TransOutUID, reqFrom(c).Amount, "") }) })) @@ -82,17 +82,17 @@ func init() { if req.TransInResult != "" { return dtmcli.String2DtmError(req.TransInResult) } - return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error { + return MustBarrierFromGin(c).CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustTrading(tx, TransInUID, req.Amount) }) })) app.POST(BusiAPI+"/TccBTransInConfirm", dtmutil.WrapHandler(func(c *gin.Context) interface{} { - return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error { + return MustBarrierFromGin(c).CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustBalance(tx, TransInUID, reqFrom(c).Amount) }) })) app.POST(BusiAPI+"/TccBTransInCancel", dtmutil.WrapHandler(func(c *gin.Context) interface{} { - return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error { + return MustBarrierFromGin(c).CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustTrading(tx, TransInUID, -reqFrom(c).Amount) }) })) @@ -170,7 +170,7 @@ func init() { }) } - return bb.Call(txGet(), func(tx *sql.Tx) error { + return bb.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustTrading(tx, TransOutUID, -req.Amount) }) })) @@ -178,7 +178,7 @@ func init() { if reqFrom(c).Store == Redis || reqFrom(c).Store == Mongo { return nil } - return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error { + return MustBarrierFromGin(c).CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustBalance(tx, TransOutUID, -reqFrom(c).Amount) }) })) @@ -198,7 +198,7 @@ func TccBarrierTransOutCancel(c *gin.Context) interface{} { return SagaMongoAdjustBalance(sc, sc.Client(), TransOutUID, reqFrom(c).Amount, "") }) } - return bb.Call(txGet(), func(tx *sql.Tx) error { + return bb.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return tccAdjustTrading(tx, TransOutUID, reqFrom(c).Amount) }) } @@ -212,21 +212,21 @@ func (s *busiServer) TransInBSaga(ctx context.Context, in *BusiReq) (*emptypb.Em func (s *busiServer) TransOutBSaga(ctx context.Context, in *BusiReq) (*emptypb.Empty, error) { barrier := MustBarrierFromGrpc(ctx) - return &emptypb.Empty{}, barrier.Call(txGet(), func(tx *sql.Tx) error { + return &emptypb.Empty{}, barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return sagaGrpcAdjustBalance(tx, TransOutUID, -in.Amount, in.TransOutResult) }) } func (s *busiServer) TransInRevertBSaga(ctx context.Context, in *BusiReq) (*emptypb.Empty, error) { barrier := MustBarrierFromGrpc(ctx) - return &emptypb.Empty{}, barrier.Call(txGet(), func(tx *sql.Tx) error { + return &emptypb.Empty{}, barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return sagaGrpcAdjustBalance(tx, TransInUID, -in.Amount, "") }) } func (s *busiServer) TransOutRevertBSaga(ctx context.Context, in *BusiReq) (*emptypb.Empty, error) { barrier := MustBarrierFromGrpc(ctx) - return &emptypb.Empty{}, barrier.Call(txGet(), func(tx *sql.Tx) error { + return &emptypb.Empty{}, barrier.CallWithDB(pdbGet(), func(tx *sql.Tx) error { return sagaGrpcAdjustBalance(tx, TransOutUID, in.Amount, "") }) } diff --git a/test/busi/quick_start.go b/test/busi/quick_start.go index 6d57af5..2f33d72 100644 --- a/test/busi/quick_start.go +++ b/test/busi/quick_start.go @@ -7,6 +7,7 @@ import ( "github.com/dtm-labs/dtm/dtmcli" "github.com/gin-gonic/gin" + "github.com/lithammer/shortuuid/v3" ) // busi address @@ -59,7 +60,7 @@ const dtmServer = "http://localhost:36789/api/dtmsvr" func QsFireRequest() string { req := &gin.H{"amount": 30} // load of micro-service // DtmServer is the url of dtm - saga := dtmcli.NewSaga(dtmServer, dtmcli.MustGenGid(dtmServer)). + saga := dtmcli.NewSaga(dtmServer, shortuuid.New()). // add a TransOut subtraction,forward operation with url: qsBusi+"/TransOut", reverse compensation operation with url: qsBusi+"/TransOutCompensate" Add(qsBusi+"/TransOut", qsBusi+"/TransOutCompensate", req). // add a TransIn subtraction, forward operation with url: qsBusi+"/TransIn", reverse compensation operation with url: qsBusi+"/TransInCompensate"