client/workflow的最简http使用示例
参考dtm安装运行
go run main.go
可以从workflow-http的日志里看到执行的顺序如下:
- TransOut
- TransIn
整个workflow事务执行成功
完整的使用例子会包括以下步骤
app.POST(qsBusiAPI+"/workflowResume", func(ctx *gin.Context) {
log.Printf("workflowResume")
data, err := ioutil.ReadAll(ctx.Request.Body)
logger.FatalIfError(err)
workflow.ExecuteByQS(ctx.Request.URL.Query(), data)
})
workflow.InitHTTP(dtmServer, qsBusi+"/workflowResume")
wfName := "workflow-http"
err := workflow.Register(wfName, func(wf *workflow.Workflow, data []byte) error {
// ...
_, err = wf.NewBranch().NewRequest().SetBody(req).Post(qsBusi + "/TransOut")
// 使用 wf.NewRequest() 的http请求,会被自动拦截,并且记录进度
}
err = workflow.Execute(wfName, shortuuid.New(), data)