Browse Source
Merge pull request #199 from NeptuneG/main
支持grpc下SAGA的并发执行
pull/201/head
yedf2
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
8 additions and
1 deletions
-
dtmcli/saga.go
-
dtmgrpc/saga.go
-
dtmsvr/trans_class.go
|
|
@ -43,8 +43,13 @@ func (s *Saga) EnableConcurrent() *Saga { |
|
|
|
|
|
|
|
|
// Submit submit the saga trans
|
|
|
// Submit submit the saga trans
|
|
|
func (s *Saga) Submit() error { |
|
|
func (s *Saga) Submit() error { |
|
|
|
|
|
s.AddConcurrentContext() |
|
|
|
|
|
return dtmimp.TransCallDtm(&s.TransBase, s, "submit") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// AddConcurrentContext adds concurrent options to the request context
|
|
|
|
|
|
func (s *Saga) AddConcurrentContext() { |
|
|
if s.concurrent { |
|
|
if s.concurrent { |
|
|
s.CustomData = dtmimp.MustMarshalString(map[string]interface{}{"orders": s.orders, "concurrent": s.concurrent}) |
|
|
s.CustomData = dtmimp.MustMarshalString(map[string]interface{}{"orders": s.orders, "concurrent": s.concurrent}) |
|
|
} |
|
|
} |
|
|
return dtmimp.TransCallDtm(&s.TransBase, s, "submit") |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
@ -43,5 +43,6 @@ func (s *SagaGrpc) EnableConcurrent() *SagaGrpc { |
|
|
|
|
|
|
|
|
// Submit submit the saga trans
|
|
|
// Submit submit the saga trans
|
|
|
func (s *SagaGrpc) Submit() error { |
|
|
func (s *SagaGrpc) Submit() error { |
|
|
|
|
|
s.Saga.AddConcurrentContext() |
|
|
return dtmgimp.DtmGrpcCall(&s.Saga.TransBase, "Submit") |
|
|
return dtmgimp.DtmGrpcCall(&s.Saga.TransBase, "Submit") |
|
|
} |
|
|
} |
|
|
|
|
|
@ -96,6 +96,7 @@ func TransFromDtmRequest(ctx context.Context, c *dtmgpb.DtmRequest) *TransGlobal |
|
|
QueryPrepared: c.QueryPrepared, |
|
|
QueryPrepared: c.QueryPrepared, |
|
|
Protocol: "grpc", |
|
|
Protocol: "grpc", |
|
|
BinPayloads: c.BinPayloads, |
|
|
BinPayloads: c.BinPayloads, |
|
|
|
|
|
CustomData: c.CustomedData, |
|
|
TransOptions: dtmcli.TransOptions{ |
|
|
TransOptions: dtmcli.TransOptions{ |
|
|
WaitResult: o.WaitResult, |
|
|
WaitResult: o.WaitResult, |
|
|
TimeoutToFail: o.TimeoutToFail, |
|
|
TimeoutToFail: o.TimeoutToFail, |
|
|
|