add another api with specified gid

This commit is contained in:
yedf2 2021-07-22 23:15:56 +08:00
parent 6b2fca7065
commit 796a136c35
4 changed files with 24 additions and 4 deletions

View File

@ -31,9 +31,14 @@ type MsgStep struct {
// NewMsg create new msg // NewMsg create new msg
func NewMsg(server string) *Msg { func NewMsg(server string) *Msg {
return NewMsg2(server, GenGid(server))
}
// NewMsg2 create new msg with specified gid
func NewMsg2(server string, gid string) *Msg {
return &Msg{ return &Msg{
MsgData: MsgData{ MsgData: MsgData{
Gid: GenGid(server), Gid: gid,
TransType: "msg", TransType: "msg",
}, },
Server: server, Server: server,

View File

@ -31,9 +31,14 @@ type SagaStep struct {
// NewSaga create a saga // NewSaga create a saga
func NewSaga(server string) *Saga { func NewSaga(server string) *Saga {
return NewSaga2(server, GenGid(server))
}
// NewSaga2 create a saga
func NewSaga2(server string, gid string) *Saga {
return &Saga{ return &Saga{
SagaData: SagaData{ SagaData: SagaData{
Gid: GenGid(server), Gid: gid,
TransType: "saga", TransType: "saga",
}, },
Server: server, Server: server,

View File

@ -22,7 +22,12 @@ type TccGlobalFunc func(tcc *Tcc) error
// TccGlobalTransaction begin a tcc global transaction // TccGlobalTransaction begin a tcc global transaction
func TccGlobalTransaction(dtm string, tccFunc TccGlobalFunc) (gid string, rerr error) { func TccGlobalTransaction(dtm string, tccFunc TccGlobalFunc) (gid string, rerr error) {
gid = GenGid(dtm) return TccGlobalTransaction2(dtm, GenGid(dtm), tccFunc)
}
// TccGlobalTransaction2 begin a tcc global transaction
func TccGlobalTransaction2(dtm string, gidIn string, tccFunc TccGlobalFunc) (gid string, rerr error) {
gid = gidIn
data := &M{ data := &M{
"gid": gid, "gid": gid,
"trans_type": "tcc", "trans_type": "tcc",

View File

@ -116,7 +116,12 @@ func (xc *XaClient) XaLocalTransaction(c *gin.Context, transFunc XaLocalFunc) (r
// XaGlobalTransaction start a xa global transaction // XaGlobalTransaction start a xa global transaction
func (xc *XaClient) XaGlobalTransaction(transFunc XaGlobalFunc) (gid string, rerr error) { func (xc *XaClient) XaGlobalTransaction(transFunc XaGlobalFunc) (gid string, rerr error) {
xa := Xa{IDGenerator: IDGenerator{}, Gid: GenGid(xc.Server)} return xc.XaGlobalTransaction2(GenGid(xc.Server), transFunc)
}
// XaGlobalTransaction2 start a xa global transaction with gid=ginIn
func (xc *XaClient) XaGlobalTransaction2(gidIn string, transFunc XaGlobalFunc) (gid string, rerr error) {
xa := Xa{IDGenerator: IDGenerator{}, Gid: gidIn}
gid = xa.Gid gid = xa.Gid
data := &M{ data := &M{
"gid": gid, "gid": gid,