From f00ed362f8b2913b62352498cbec2ae3baed463c Mon Sep 17 00:00:00 2001 From: Rafael Almeida Date: Fri, 12 Apr 2024 21:32:11 +1200 Subject: [PATCH] fix merge config --- broker/broker.go | 69 +++++++++++++++++++++++++++------- moleculer.go | 4 +- transit/tcp/tcp-transporter.go | 1 + 3 files changed, 58 insertions(+), 16 deletions(-) diff --git a/broker/broker.go b/broker/broker.go index bf1de2a..77e7487 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -55,33 +55,71 @@ func mergeConfigs(baseConfig moleculer.Config, userConfig []*moleculer.Config) m if config.StrategyFactory != nil { baseConfig.StrategyFactory = config.StrategyFactory } - if config.DisableInternalMiddlewares { - baseConfig.DisableInternalMiddlewares = config.DisableInternalMiddlewares + if config.UpdateNodeMetricsFrequency != 0 { + baseConfig.UpdateNodeMetricsFrequency = config.UpdateNodeMetricsFrequency } - if config.DisableInternalServices { - baseConfig.DisableInternalServices = config.DisableInternalServices + if config.HeartbeatFrequency != 0 { + baseConfig.HeartbeatFrequency = config.HeartbeatFrequency + } + if config.HeartbeatTimeout != 0 { + baseConfig.HeartbeatTimeout = config.HeartbeatTimeout + } + if config.OfflineCheckFrequency != 0 { + baseConfig.OfflineCheckFrequency = config.OfflineCheckFrequency + } + if config.OfflineTimeout != 0 { + baseConfig.OfflineTimeout = config.OfflineTimeout + } + if config.NeighboursCheckTimeout != 0 { + baseConfig.NeighboursCheckTimeout = config.NeighboursCheckTimeout + } + if config.WaitForDependenciesTimeout != 0 { + baseConfig.WaitForDependenciesTimeout = config.WaitForDependenciesTimeout + } + if config.Middlewares != nil { + baseConfig.Middlewares = config.Middlewares + } + if config.Namespace != "" { + baseConfig.Namespace = config.Namespace + } + if config.RequestTimeout != 0 { + baseConfig.RequestTimeout = config.RequestTimeout + } + if config.MCallTimeout != 0 { + baseConfig.MCallTimeout = config.MCallTimeout + } + if config.RetryPolicy != nil { + baseConfig.RetryPolicy = config.RetryPolicy + } + if config.MaxCallLevel != 0 { + baseConfig.MaxCallLevel = config.MaxCallLevel } if config.Metrics { baseConfig.Metrics = config.Metrics } - if config.MetricsRate > 0 { baseConfig.MetricsRate = config.MetricsRate } - + if config.DisableInternalServices { + baseConfig.DisableInternalServices = config.DisableInternalServices + } + if config.DisableInternalMiddlewares { + baseConfig.DisableInternalMiddlewares = config.DisableInternalMiddlewares + } if config.DontWaitForNeighbours { baseConfig.DontWaitForNeighbours = config.DontWaitForNeighbours } - - if config.Middlewares != nil { - baseConfig.Middlewares = config.Middlewares + if config.WaitForNeighboursInterval != 0 { + baseConfig.WaitForNeighboursInterval = config.WaitForNeighboursInterval } - if config.RequestTimeout != 0 { - baseConfig.RequestTimeout = config.RequestTimeout + if config.Created != nil { + baseConfig.Created = config.Created } - - if config.Namespace != "" { - baseConfig.Namespace = config.Namespace + if config.Started != nil { + baseConfig.Started = config.Started + } + if config.Stopped != nil { + baseConfig.Stopped = config.Stopped } } } @@ -330,6 +368,9 @@ func (broker *ServiceBroker) waitForService(service string) error { break } if time.Since(start) > broker.config.WaitForDependenciesTimeout { + broker.logger.Debug("Time:", time.Since(start)) + broker.logger.Debug("WaitForDependenciesTimeout:", broker.config.WaitForDependenciesTimeout) + err := errors.New("waitForService() - Timeout ! service: " + service) broker.logger.Error(err) return err diff --git a/moleculer.go b/moleculer.go index f1ce25a..85c99e2 100644 --- a/moleculer.go +++ b/moleculer.go @@ -134,7 +134,7 @@ type Config struct { Namespace string RequestTimeout time.Duration MCallTimeout time.Duration - RetryPolicy RetryPolicy + RetryPolicy *RetryPolicy MaxCallLevel int Metrics bool MetricsRate float32 @@ -170,7 +170,7 @@ var DefaultConfig = Config{ Started: func() {}, Stopped: func() {}, MaxCallLevel: 100, - RetryPolicy: RetryPolicy{ + RetryPolicy: &RetryPolicy{ Enabled: false, }, RequestTimeout: 3 * time.Second, diff --git a/transit/tcp/tcp-transporter.go b/transit/tcp/tcp-transporter.go index 47c8aa0..bb771a8 100644 --- a/transit/tcp/tcp-transporter.go +++ b/transit/tcp/tcp-transporter.go @@ -338,6 +338,7 @@ func (transporter *TCPTransporter) tryToConnect(nodeID string) error { } func (transporter *TCPTransporter) Publish(command, nodeID string, message moleculer.Payload) { + transporter.logger.Debug("TCPTransporter.Publish() command: " + command + " to nodeID: " + nodeID) if command == "DISCOVER" { if transporter.udpServer != nil { transporter.udpServer.BroadcastDiscoveryMessage()