refactor(server/v2): simplify server component init (#20742)
This commit is contained in:
@@ -35,17 +35,17 @@ type GRPCService interface {
|
||||
RegisterGRPCServer(gogogrpc.Server)
|
||||
}
|
||||
|
||||
func New() GRPCServer {
|
||||
return GRPCServer{}
|
||||
func New() *GRPCServer {
|
||||
return &GRPCServer{}
|
||||
}
|
||||
|
||||
// Init returns a correctly configured and initialized gRPC server.
|
||||
// Note, the caller is responsible for starting the server.
|
||||
func (g GRPCServer) Init(appI serverv2.AppI[transaction.Tx], v *viper.Viper, logger log.Logger) (serverv2.ServerComponent[transaction.Tx], error) {
|
||||
func (g *GRPCServer) Init(appI serverv2.AppI[transaction.Tx], v *viper.Viper, logger log.Logger) error {
|
||||
cfg := DefaultConfig()
|
||||
if v != nil {
|
||||
if err := v.Sub(serverName).Unmarshal(&cfg); err != nil {
|
||||
return GRPCServer{}, fmt.Errorf("failed to unmarshal config: %w", err)
|
||||
return fmt.Errorf("failed to unmarshal config: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,18 +61,18 @@ func (g GRPCServer) Init(appI serverv2.AppI[transaction.Tx], v *viper.Viper, log
|
||||
// the gRPC server exposes.
|
||||
gogoreflection.Register(grpcSrv)
|
||||
|
||||
return GRPCServer{
|
||||
grpcSrv: grpcSrv,
|
||||
config: cfg,
|
||||
logger: logger.With(log.ModuleKey, serverName),
|
||||
}, nil
|
||||
g.grpcSrv = grpcSrv
|
||||
g.config = cfg
|
||||
g.logger = logger.With(log.ModuleKey, serverName)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (g GRPCServer) Name() string {
|
||||
func (g *GRPCServer) Name() string {
|
||||
return serverName
|
||||
}
|
||||
|
||||
func (g GRPCServer) Start(ctx context.Context) error {
|
||||
func (g *GRPCServer) Start(ctx context.Context) error {
|
||||
listener, err := net.Listen("tcp", g.config.Address)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to listen on address %s: %w", g.config.Address, err)
|
||||
@@ -95,14 +95,14 @@ func (g GRPCServer) Start(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (g GRPCServer) Stop(ctx context.Context) error {
|
||||
func (g *GRPCServer) Stop(ctx context.Context) error {
|
||||
g.logger.Info("stopping gRPC server...", "address", g.config.Address)
|
||||
g.grpcSrv.GracefulStop()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (g GRPCServer) Config() any {
|
||||
func (g *GRPCServer) Config() any {
|
||||
if g.config == nil || g.config == (&Config{}) {
|
||||
return DefaultConfig()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user