Files
mq/examples/dag_consumer.go
2024-10-15 20:27:04 +05:45

35 lines
802 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("queue1")
err := d.Consume(context.Background())
if err != nil {
panic(err)
}
}