update
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
||||
"google.golang.org/grpc/health"
|
||||
"google.golang.org/grpc/health/grpc_health_v1"
|
||||
"google.golang.org/grpc/keepalive"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/reflection"
|
||||
"google.golang.org/grpc/status"
|
||||
"log"
|
||||
@@ -39,6 +40,7 @@ type Opt func(server *Server)
|
||||
|
||||
type Server struct {
|
||||
gs *grpc.Server
|
||||
serviceAddr string
|
||||
serviceId string
|
||||
serviceName string
|
||||
serverConf *Conf
|
||||
@@ -221,6 +223,8 @@ func (s *Server) Run(ctx context.Context) error {
|
||||
addr := fmt.Sprintf("%s:%d", s.serverConf.Addr, port)
|
||||
log.Printf("grpc server listen on %s", addr)
|
||||
|
||||
s.serviceAddr = fmt.Sprintf("%s:%d", svcIp, port)
|
||||
|
||||
err = s.gs.Serve(lis)
|
||||
if err != nil {
|
||||
log.Printf("start grpc server err: %s", err)
|
||||
@@ -297,6 +301,14 @@ func (s *Server) requestLog() grpc.UnaryServerInterceptor {
|
||||
|
||||
func (s *Server) grpcRecover() grpc.UnaryServerInterceptor {
|
||||
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
|
||||
md := metadata.New(map[string]string{
|
||||
"service-host": mycommon.GetHostName(),
|
||||
"service-addr": s.serviceAddr,
|
||||
"service-name": s.serviceName,
|
||||
"service-method": info.FullMethod,
|
||||
})
|
||||
grpc.SetHeader(ctx, md)
|
||||
|
||||
defer func() {
|
||||
if err0 := recover(); err0 != nil {
|
||||
log.Printf("%s - panic: %v\n%s", info.FullMethod, err0, debug.Stack())
|
||||
@@ -304,7 +316,13 @@ func (s *Server) grpcRecover() grpc.UnaryServerInterceptor {
|
||||
}
|
||||
}()
|
||||
|
||||
return handler(ctx, req)
|
||||
res, err := handler(ctx, req)
|
||||
if err != nil {
|
||||
fmt.Println("set header")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return res, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user