github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/broker/producer/producer.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "time" 7 8 "github.com/micro/go-micro/v2/broker" 9 "github.com/micro/go-micro/v2/config/cmd" 10 // To enable rabbitmq plugin uncomment 11 //_ "github.com/micro/go-plugins/broker/rabbitmq" 12 ) 13 14 var ( 15 topic = "go.micro.topic.foo" 16 ) 17 18 func pub() { 19 tick := time.NewTicker(time.Second) 20 i := 0 21 for _ = range tick.C { 22 msg := &broker.Message{ 23 Header: map[string]string{ 24 "id": fmt.Sprintf("%d", i), 25 }, 26 Body: []byte(fmt.Sprintf("%d: %s", i, time.Now().String())), 27 } 28 if err := broker.Publish(topic, msg); err != nil { 29 log.Printf("[pub] failed: %v", err) 30 } else { 31 fmt.Println("[pub] pubbed message:", string(msg.Body)) 32 } 33 i++ 34 } 35 } 36 37 func main() { 38 cmd.Init() 39 40 if err := broker.Init(); err != nil { 41 log.Fatalf("Broker Init error: %v", err) 42 } 43 44 if err := broker.Connect(); err != nil { 45 log.Fatalf("Broker Connect error: %v", err) 46 } 47 48 pub() 49 }