Skip to content

Latest commit

 

History

History
55 lines (40 loc) · 1.18 KB

README-cn.md

File metadata and controls

55 lines (40 loc) · 1.18 KB

workflow-http

client/workflow的最简http使用示例

快速开始

安装运行dtm

参考dtm安装运行

启动示例

go run main.go

输出

可以从workflow-http的日志里看到执行的顺序如下:

  • TransOut
  • TransIn

整个workflow事务执行成功

步骤

完整的使用例子会包括以下步骤

初始化 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")

注册一个workflow

	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请求,会被自动拦截,并且记录进度
	}

执行一个 Workflow

	err = workflow.Execute(wfName, shortuuid.New(), data)

更多示例,详见dtm-examples