59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package grpc
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/micro/go-micro"
 | |
| 	broker "github.com/micro/go-micro/broker"
 | |
| 	client "github.com/micro/go-micro/client/grpc"
 | |
| 	server "github.com/micro/go-micro/server/grpc"
 | |
| )
 | |
| 
 | |
| // NewService returns a grpc service compatible with go-micro.Service
 | |
| func NewService(opts ...micro.Option) micro.Service {
 | |
| 	// our grpc client
 | |
| 	c := client.NewClient()
 | |
| 	// our grpc server
 | |
| 	s := server.NewServer()
 | |
| 	// our grpc broker
 | |
| 	b := broker.NewBroker()
 | |
| 
 | |
| 	// create options with priority for our opts
 | |
| 	options := []micro.Option{
 | |
| 		micro.Client(c),
 | |
| 		micro.Server(s),
 | |
| 		micro.Broker(b),
 | |
| 	}
 | |
| 
 | |
| 	// append passed in opts
 | |
| 	options = append(options, opts...)
 | |
| 
 | |
| 	// generate and return a service
 | |
| 	return micro.NewService(options...)
 | |
| }
 | |
| 
 | |
| // NewFunction returns a grpc service compatible with go-micro.Function
 | |
| func NewFunction(opts ...micro.Option) micro.Function {
 | |
| 	// our grpc client
 | |
| 	c := client.NewClient()
 | |
| 	// our grpc server
 | |
| 	s := server.NewServer()
 | |
| 	// our grpc broker
 | |
| 	b := broker.NewBroker()
 | |
| 
 | |
| 	// create options with priority for our opts
 | |
| 	options := []micro.Option{
 | |
| 		micro.Client(c),
 | |
| 		micro.Server(s),
 | |
| 		micro.Broker(b),
 | |
| 		micro.RegisterTTL(time.Minute),
 | |
| 		micro.RegisterInterval(time.Second * 30),
 | |
| 	}
 | |
| 
 | |
| 	// append passed in opts
 | |
| 	options = append(options, opts...)
 | |
| 
 | |
| 	// generate and return a function
 | |
| 	return micro.NewFunction(options...)
 | |
| }
 |