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  }