adjust due to docs
This commit is contained in:
parent
e261d6e948
commit
bc08429a95
@ -43,7 +43,7 @@ func xaRollback(t *testing.T) {
|
||||
xc := examples.XaClient
|
||||
gid := "xaRollback"
|
||||
err := xc.XaGlobalTransaction(gid, func(xa *dtmcli.Xa) error {
|
||||
req := examples.GenTransReq(30, false, true)
|
||||
req := &examples.TransReq{Amount: 30, TransInResult: "FAILURE"}
|
||||
resp, err := xa.CallBranch(req, examples.Busi+"/TransOutXa")
|
||||
common.CheckRestySuccess(resp, err)
|
||||
resp, err = xa.CallBranch(req, examples.Busi+"/TransInXa")
|
||||
|
||||
@ -13,11 +13,7 @@ func MsgSetup(app *gin.Engine) {
|
||||
// MsgFireRequest 1
|
||||
func MsgFireRequest() string {
|
||||
logrus.Printf("a busi transaction begin")
|
||||
req := &TransReq{
|
||||
Amount: 30,
|
||||
TransInResult: "SUCCESS",
|
||||
TransOutResult: "SUCCESS",
|
||||
}
|
||||
req := &TransReq{Amount: 30}
|
||||
msg := dtmcli.NewMsg(DtmServer, dtmcli.MustGenGid(DtmServer)).
|
||||
Add(Busi+"/TransOut", req).
|
||||
Add(Busi+"/TransIn", req)
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/yedf/dtm/common"
|
||||
"github.com/yedf/dtm/dtmcli"
|
||||
)
|
||||
@ -37,12 +36,22 @@ func dbGet() *common.DB {
|
||||
return common.DbGet(config.Mysql)
|
||||
}
|
||||
|
||||
// XaFireRequest 1
|
||||
// XaSetup 挂载http的api,创建XaClient
|
||||
func XaSetup(app *gin.Engine) {
|
||||
app.POST(BusiAPI+"/TransInXa", common.WrapHandler(xaTransIn))
|
||||
app.POST(BusiAPI+"/TransOutXa", common.WrapHandler(xaTransOut))
|
||||
config.Mysql["database"] = "dtm_busi"
|
||||
var err error
|
||||
XaClient, err = dtmcli.NewXaClient(DtmServer, config.Mysql, app, Busi+"/xa")
|
||||
e2p(err)
|
||||
}
|
||||
|
||||
// XaFireRequest 注册全局XA事务,调用XA的分支
|
||||
func XaFireRequest() string {
|
||||
gid := dtmcli.MustGenGid(DtmServer)
|
||||
err := XaClient.XaGlobalTransaction(gid, func(xa *dtmcli.Xa) (rerr error) {
|
||||
defer common.P2E(&rerr)
|
||||
req := GenTransReq(30, false, false)
|
||||
req := &TransReq{Amount: 30}
|
||||
resp, err := xa.CallBranch(req, Busi+"/TransOutXa")
|
||||
common.CheckRestySuccess(resp, err)
|
||||
resp, err = xa.CallBranch(req, Busi+"/TransInXa")
|
||||
@ -53,16 +62,6 @@ func XaFireRequest() string {
|
||||
return gid
|
||||
}
|
||||
|
||||
// XaSetup 1
|
||||
func XaSetup(app *gin.Engine) {
|
||||
app.POST(BusiAPI+"/TransInXa", common.WrapHandler(xaTransIn))
|
||||
app.POST(BusiAPI+"/TransOutXa", common.WrapHandler(xaTransOut))
|
||||
config.Mysql["database"] = "dtm_busi"
|
||||
var err error
|
||||
XaClient, err = dtmcli.NewXaClient(DtmServer, config.Mysql, app, Busi+"/xa")
|
||||
e2p(err)
|
||||
}
|
||||
|
||||
func xaTransIn(c *gin.Context) (interface{}, error) {
|
||||
err := XaClient.XaLocalTransaction(c, func(db *common.DB, xa *dtmcli.Xa) (rerr error) {
|
||||
req := reqFrom(c)
|
||||
@ -85,9 +84,7 @@ func xaTransOut(c *gin.Context) (interface{}, error) {
|
||||
if req.TransOutResult != "SUCCESS" {
|
||||
return fmt.Errorf("tranOut failed")
|
||||
}
|
||||
logrus.Printf("before updating balance")
|
||||
dbr := db.Exec("update user_account set balance=balance-? where user_id=?", req.Amount, 1)
|
||||
logrus.Printf("after updating balance")
|
||||
return dbr.Error
|
||||
})
|
||||
e2p(err)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user