# mini-flow **Repository Path**: yur/mini-flow ## Basic Information - **Project Name**: mini-flow - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-14 - **Last Updated**: 2021-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mini-flow #### 介绍 mini-flow 是一个用来执行DAG图的简单控制流 #### 用法 ``` package main import ( "fmt" "github.com/s8sg/mini-flow/flow" ) func main(){ workflow := new(flow.Workflow) dag := workflow.NewDag() dag.Node("node1").Apply("func1").Out("node2") dag.Node("node0").Apply("func1").In("node2").Out("test") dag.Node("node2").Modify(func(data []byte) ([]byte, error) { // do something //fmt.Println("************>>>") //fmt.Print(string(data)) //fmt.Println("************<<<") return data, nil }) dag.Node("node3").Apply("func2").In("node0") dag.Node("node4").In("test").Modify(func(data []byte) ([]byte, error) { // do something fmt.Println("----************>>>") fmt.Print(string(data)) fmt.Println("----************<<<") return data, nil }) dag.Edge("node1", "node0") dag.Edge("node0", "node2") dag.Edge("node0", "node3") dag.Edge("node0", "node4") executor := flow.FlowExecutor{Flow: workflow} result, err := executor.ExecuteFlow([]byte("aaa")) if err != nil { fmt.Errorf(err.Error()) } //resp := make(map[string][]byte) //json.Unmarshal(result, &resp) //fmt.Println(string(resp["node2"])) fmt.Println(string(result)) } ```