add waitResult sample
This commit is contained in:
parent
a17ad4a242
commit
6b9d8407ac
@ -54,6 +54,7 @@ func main() {
|
||||
examples.MsgFireRequest()
|
||||
} else if os.Args[1] == "all" { // 运行所有示例
|
||||
examples.SagaSetup(app)
|
||||
examples.SagaWaitSetup(app)
|
||||
examples.TccSetup(app)
|
||||
examples.XaSetup(app)
|
||||
examples.MsgSetup(app)
|
||||
|
||||
@ -13,6 +13,7 @@ func TestExamples(t *testing.T) {
|
||||
assertSucceed(t, examples.MsgFireRequest())
|
||||
assertSucceed(t, examples.SagaBarrierFireRequest())
|
||||
assertSucceed(t, examples.SagaFireRequest())
|
||||
assertSucceed(t, examples.SagaWaitFireRequest())
|
||||
assertSucceed(t, examples.TccBarrierFireRequest())
|
||||
assertSucceed(t, examples.TccFireRequest())
|
||||
assertSucceed(t, examples.TccFireRequestNested())
|
||||
|
||||
28
examples/main_saga_wait.go
Normal file
28
examples/main_saga_wait.go
Normal file
@ -0,0 +1,28 @@
|
||||
package examples
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/yedf/dtm/dtmcli"
|
||||
)
|
||||
|
||||
// SagaWaitSetup 1
|
||||
func SagaWaitSetup(app *gin.Engine) {
|
||||
}
|
||||
|
||||
// SagaWaitFireRequest 1
|
||||
func SagaWaitFireRequest() string {
|
||||
dtmcli.Logf("a saga busi transaction begin")
|
||||
req := &TransReq{
|
||||
Amount: 30,
|
||||
TransInResult: "SUCCESS",
|
||||
TransOutResult: "SUCCESS",
|
||||
}
|
||||
saga := dtmcli.NewSaga(DtmServer, dtmcli.MustGenGid(DtmServer)).
|
||||
Add(Busi+"/TransOut", Busi+"/TransOutRevert", req).
|
||||
Add(Busi+"/TransIn", Busi+"/TransInRevert", req)
|
||||
saga.WaitResult = true // 设置为等待结果模式,后面的submit调用,会等待服务器处理这个事务。如果Submit正常返回,那么整个全局事务已成功完成
|
||||
err := saga.Submit()
|
||||
dtmcli.Logf("result gid is: %s", saga.Gid)
|
||||
e2p(err)
|
||||
return saga.Gid
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user