Files
mq/examples/dag_consumer.go
2024-10-14 05:54:01 +05:45

35 lines
779 B
Go

package main
import (
"context"
"github.com/oarkflow/mq"
"github.com/oarkflow/mq/examples/tasks"
"github.com/oarkflow/mq/dag"
)
func main() {
d := dag.NewDAG("Sample DAG", "sample-dag",
mq.WithSyncMode(true),
mq.WithNotifyResponse(tasks.NotifyResponse),
)
d.AddNode("C", "C", tasks.Node3, true)
d.AddNode("D", "D", tasks.Node4)
d.AddNode("E", "E", tasks.Node5)
d.AddNode("F", "F", tasks.Node6)
d.AddNode("G", "G", tasks.Node7)
d.AddNode("H", "H", tasks.Node8)
d.AddCondition("C", map[dag.When]dag.Then{"PASS": "D", "FAIL": "E"})
d.AddEdge("Label 1", "B", "C")
d.AddEdge("Label 2", "D", "F")
d.AddEdge("Label 3", "E", "F")
d.AddEdge("Label 4", "F", "G", "H")
d.AssignTopic("D")
err := d.Consume(context.Background())
if err != nil {
panic(err)
}
}