diff --git a/examples/grpc_tcc.go b/examples/grpc_tcc.go new file mode 100644 index 0000000..a842d46 --- /dev/null +++ b/examples/grpc_tcc.go @@ -0,0 +1,24 @@ +package examples + +import ( + "github.com/yedf/dtm/dtmcli" + dtmgrpc "github.com/yedf/dtm/dtmgrpc" +) + +func init() { + addSample("grpc_tcc", func() string { + dtmcli.Logf("tcc simple transaction begin") + gid := dtmgrpc.MustGenGid(DtmGrpcServer) + err := dtmgrpc.TccGlobalTransaction(DtmGrpcServer, gid, func(tcc *dtmgrpc.TccGrpc) error { + data := dtmcli.MustMarshal(&TransReq{Amount: 30}) + _, err := tcc.CallBranch(data, BusiGrpc+"/examples.Busi/TransOut", BusiGrpc+"/examples.Busi/TransOutConfirm", BusiGrpc+"/examples.Busi/TransOutRevert") + if err != nil { + return err + } + _, err = tcc.CallBranch(data, BusiGrpc+"/examples.Busi/TransIn", BusiGrpc+"/examples.Busi/TransInConfirm", BusiGrpc+"/examples.Busi/TransInRevert") + return err + }) + dtmcli.FatalIfError(err) + return gid + }) +}