@@ -3,14 +3,15 @@ package zrpc
33import (
44 "time"
55
6+ "google.golang.org/grpc"
7+
68 "github.com/zeromicro/go-zero/core/load"
79 "github.com/zeromicro/go-zero/core/logx"
810 "github.com/zeromicro/go-zero/core/stat"
911 "github.com/zeromicro/go-zero/core/stores/redis"
1012 "github.com/zeromicro/go-zero/zrpc/internal"
1113 "github.com/zeromicro/go-zero/zrpc/internal/auth"
1214 "github.com/zeromicro/go-zero/zrpc/internal/serverinterceptors"
13- "google.golang.org/grpc"
1415)
1516
1617// A RpcServer is a rpc server.
@@ -139,6 +140,9 @@ func setupStreamInterceptors(svr internal.Server, c RpcServerConf) {
139140 if c .Middlewares .Breaker {
140141 svr .AddStreamInterceptors (serverinterceptors .StreamBreakerInterceptor )
141142 }
143+ if c .Middlewares .Shutdown {
144+ svr .AddStreamInterceptors (serverinterceptors .StreamShutdownInterceptor )
145+ }
142146}
143147
144148func setupUnaryInterceptors (svr internal.Server , c RpcServerConf , metrics * stat.Metrics ) {
@@ -157,6 +161,9 @@ func setupUnaryInterceptors(svr internal.Server, c RpcServerConf, metrics *stat.
157161 if c .Middlewares .Breaker {
158162 svr .AddUnaryInterceptors (serverinterceptors .UnaryBreakerInterceptor )
159163 }
164+ if c .Middlewares .Shutdown {
165+ svr .AddUnaryInterceptors (serverinterceptors .UnaryShutdownInterceptor )
166+ }
160167 if c .CpuThreshold > 0 {
161168 shedder := load .NewAdaptiveShedder (load .WithCpuThreshold (c .CpuThreshold ))
162169 svr .AddUnaryInterceptors (serverinterceptors .UnarySheddingInterceptor (shedder , metrics ))
0 commit comments