add waitResult sample

This commit is contained in:
yedf2 2021-08-05 16:27:50 +08:00
parent a17ad4a242
commit 6b9d8407ac
3 changed files with 30 additions and 0 deletions

View File

@ -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)

View File

@ -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())

View 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
}