From e5b39edc71ca2013aa5cc54d120bd013af633ec7 Mon Sep 17 00:00:00 2001 From: Vegar Sechmann Molvig Date: Mon, 10 Jun 2024 11:07:43 +0200 Subject: [PATCH] apiserver: report online gateways every 5 sec --- cmd/apiserver/main.go | 12 ++++++++++++ internal/apiserver/api/gateway.go | 6 +----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cmd/apiserver/main.go b/cmd/apiserver/main.go index 5d9ce6bda..ae4de8c9e 100644 --- a/cmd/apiserver/main.go +++ b/cmd/apiserver/main.go @@ -376,6 +376,18 @@ func run(log *logrus.Entry, cfg config.Config) error { cancel() }() + go func() { + ticker := time.NewTicker(5 * time.Second) + for ctx.Err() == nil { + select { + case <-ctx.Done(): + return + case <-ticker.C: + grpcHandler.ReportOnlineGateways() + } + } + }() + sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) go func() { diff --git a/internal/apiserver/api/gateway.go b/internal/apiserver/api/gateway.go index 33e34d0cb..df3d53da9 100644 --- a/internal/apiserver/api/gateway.go +++ b/internal/apiserver/api/gateway.go @@ -32,8 +32,6 @@ func (s *grpcServer) GetGatewayConfiguration(request *pb.GetGatewayConfiguration s.log.Infof("Gateway %s connected (%d active gateways)", request.Gateway, len(s.gatewayConfigTrigger)) s.gatewayConfigTriggerLock.Unlock() - s.reportOnlineGateways() - for { select { case <-c: @@ -53,8 +51,6 @@ func (s *grpcServer) GetGatewayConfiguration(request *pb.GetGatewayConfiguration s.log.Infof("Gateway %s disconnected (%d active gateways)", request.Gateway, len(s.gatewayConfigTrigger)) s.gatewayConfigTriggerLock.Unlock() - s.reportOnlineGateways() - return nil } } @@ -95,7 +91,7 @@ func (s *grpcServer) MakeGatewayConfiguration(ctx context.Context, gatewayName s return gatewayConfig, nil } -func (s *grpcServer) reportOnlineGateways() { +func (s *grpcServer) ReportOnlineGateways() { s.gatewayConfigTriggerLock.RLock() connectedGatewayNames := make([]string, 0, len(s.gatewayConfigTrigger)) for k := range s.gatewayConfigTrigger {