package serverinterceptors import ( "context" "time" "zero/core/contextx" "google.golang.org/grpc" ) func UnaryTimeoutInterceptor(timeout time.Duration) grpc.UnaryServerInterceptor { return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) { ctx, cancel := contextx.ShrinkDeadline(ctx, timeout) defer cancel() return handler(ctx, req) } }