github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/client/pub/pub.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "context" 7 example "github.com/micro/go-micro/examples/server/proto/example" 8 "github.com/micro/go-micro/v2" 9 ) 10 11 // publishes a message 12 func pub(i int, p micro.Publisher) { 13 msg := &example.Message{ 14 Say: fmt.Sprintf("This is an async message %d", i), 15 } 16 17 if err := p.Publish(context.TODO(), msg); err != nil { 18 fmt.Println("pub err: ", err) 19 return 20 } 21 22 fmt.Printf("Published %d: %v\n", i, msg) 23 } 24 25 func main() { 26 service := micro.NewService() 27 service.Init() 28 29 p := micro.NewPublisher("example", service.Client()) 30 31 fmt.Println("\n--- Publisher example ---") 32 33 for i := 0; i < 10; i++ { 34 pub(i, p) 35 } 36 }