tcc barrier seems ok
This commit is contained in:
parent
b0102048a9
commit
5db1825ed6
@ -55,6 +55,11 @@ func main() {
|
|||||||
dtmsvr.MainStart()
|
dtmsvr.MainStart()
|
||||||
examples.PopulateMysql()
|
examples.PopulateMysql()
|
||||||
examples.SagaBarrierMainStart()
|
examples.SagaBarrierMainStart()
|
||||||
|
} else if os.Args[1] == "tcc_barrier" {
|
||||||
|
dtmsvr.PopulateMysql()
|
||||||
|
dtmsvr.MainStart()
|
||||||
|
examples.PopulateMysql()
|
||||||
|
examples.TccBarrierMainStart()
|
||||||
} else {
|
} else {
|
||||||
logrus.Fatalf("unknown arg: %s", os.Args[1])
|
logrus.Fatalf("unknown arg: %s", os.Args[1])
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,7 +74,7 @@ func ThroughBarrierCall(db *sql.DB, transInfo *TransInfo, busiCall BusiFunc) (re
|
|||||||
"compensate": "action",
|
"compensate": "action",
|
||||||
}[transInfo.BranchType]
|
}[transInfo.BranchType]
|
||||||
originAffected, _ := insertBarrier(tx, transInfo.TransType, transInfo.Gid, transInfo.BranchID, originType)
|
originAffected, _ := insertBarrier(tx, transInfo.TransType, transInfo.Gid, transInfo.BranchID, originType)
|
||||||
currentAffected, rerr := insertBarrier(tx, transInfo.TransType, transInfo.Gid, transInfo.BranchID, transInfo.TransType)
|
currentAffected, rerr := insertBarrier(tx, transInfo.TransType, transInfo.Gid, transInfo.BranchID, transInfo.BranchType)
|
||||||
if currentAffected == 0 || (originType == "cancel" || originType == "compensate") && originAffected > 0 {
|
if currentAffected == 0 || (originType == "cancel" || originType == "compensate") && originAffected > 0 {
|
||||||
res = "SUCCESS" // 如果被忽略,那么直接返回 "SUCCESS",表示成功,可以进行下一步
|
res = "SUCCESS" // 如果被忽略,那么直接返回 "SUCCESS",表示成功,可以进行下一步
|
||||||
return
|
return
|
||||||
|
|||||||
@ -49,10 +49,11 @@ func TccFromReq(c *gin.Context) (*Tcc, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *Tcc) CallBranch(body interface{}, tryUrl string, confirmUrl string, cancelUrl string) (*resty.Response, error) {
|
func (t *Tcc) CallBranch(body interface{}, tryUrl string, confirmUrl string, cancelUrl string) (*resty.Response, error) {
|
||||||
|
branchID := common.GenGid()
|
||||||
resp, err := common.RestyClient.R().
|
resp, err := common.RestyClient.R().
|
||||||
SetBody(&M{
|
SetBody(&M{
|
||||||
"gid": t.Gid,
|
"gid": t.Gid,
|
||||||
"branch_id": common.GenGid(),
|
"branch_id": branchID,
|
||||||
"trans_type": "tcc",
|
"trans_type": "tcc",
|
||||||
"status": "prepared",
|
"status": "prepared",
|
||||||
"data": string(common.MustMarshal(body)),
|
"data": string(common.MustMarshal(body)),
|
||||||
@ -66,5 +67,11 @@ func (t *Tcc) CallBranch(body interface{}, tryUrl string, confirmUrl string, can
|
|||||||
}
|
}
|
||||||
return common.RestyClient.R().
|
return common.RestyClient.R().
|
||||||
SetBody(body).
|
SetBody(body).
|
||||||
|
SetQueryParams(common.MS{
|
||||||
|
"gid": t.Gid,
|
||||||
|
"branch_id": branchID,
|
||||||
|
"trans_type": "tcc",
|
||||||
|
"branch_type": "try",
|
||||||
|
}).
|
||||||
Post(tryUrl)
|
Post(tryUrl)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,14 @@ type UserAccount struct {
|
|||||||
|
|
||||||
func (u *UserAccount) TableName() string { return "user_account" }
|
func (u *UserAccount) TableName() string { return "user_account" }
|
||||||
|
|
||||||
|
type UserAccountTrading struct {
|
||||||
|
common.ModelBase
|
||||||
|
UserId int
|
||||||
|
TradingBalance string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *UserAccountTrading) TableName() string { return "user_account_trading" }
|
||||||
|
|
||||||
func dbGet() *common.DB {
|
func dbGet() *common.DB {
|
||||||
return common.DbGet(Config.Mysql)
|
return common.DbGet(Config.Mysql)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,7 @@ const DtmServer = "http://localhost:8080/api/dtmsvr"
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
SagaBarrierBusiPort = iota + 8090
|
SagaBarrierBusiPort = iota + 8090
|
||||||
|
TccBarrierBusiPort
|
||||||
)
|
)
|
||||||
|
|
||||||
type TransReq struct {
|
type TransReq struct {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user