fixed excessive logging non-nil checks)
This commit is contained in:
@@ -17,6 +17,17 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type RegistryOption func(*RegistryService)
|
||||
|
||||
func WithRegistryKVTTL(ttl time.Duration) RegistryOption {
|
||||
return func(s *RegistryService) {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
s.kvOptions = append(s.kvOptions, WithKVTTL(ttl))
|
||||
}
|
||||
}
|
||||
|
||||
type RegistryService struct {
|
||||
logger mlogger.Logger
|
||||
registry *Registry
|
||||
@@ -25,6 +36,7 @@ type RegistryService struct {
|
||||
consumers []consumerHandler
|
||||
kv *KVStore
|
||||
kvWatcher nats.KeyWatcher
|
||||
kvOptions []KVStoreOption
|
||||
|
||||
startOnce sync.Once
|
||||
stopOnce sync.Once
|
||||
@@ -36,16 +48,17 @@ type consumerHandler struct {
|
||||
event string
|
||||
}
|
||||
|
||||
func NewRegistryService(logger mlogger.Logger, msgBroker mb.Broker, producer msg.Producer, registry *Registry, sender string) (*RegistryService, error) {
|
||||
func NewRegistryService(logger mlogger.Logger, msgBroker mb.Broker, producer msg.Producer, registry *Registry, sender string, opts ...RegistryOption) (*RegistryService, error) {
|
||||
if msgBroker == nil {
|
||||
return nil, errors.New("discovery registry: broker is nil")
|
||||
}
|
||||
if registry == nil {
|
||||
registry = NewRegistry()
|
||||
}
|
||||
if logger != nil {
|
||||
logger = logger.Named("discovery_registry")
|
||||
if logger == nil {
|
||||
logger = zap.NewNop()
|
||||
}
|
||||
logger = logger.Named("discovery_registry")
|
||||
sender = strings.TrimSpace(sender)
|
||||
if sender == "" {
|
||||
sender = "discovery"
|
||||
@@ -74,6 +87,11 @@ func NewRegistryService(logger mlogger.Logger, msgBroker mb.Broker, producer msg
|
||||
producer: producer,
|
||||
sender: sender,
|
||||
}
|
||||
for _, opt := range opts {
|
||||
if opt != nil {
|
||||
opt(svc)
|
||||
}
|
||||
}
|
||||
svc.consumers = []consumerHandler{
|
||||
{consumer: serviceConsumer, event: ServiceAnnounceEvent().ToString(), handler: func(ctx context.Context, env me.Envelope) error {
|
||||
return svc.handleAnnounce(ctx, env)
|
||||
@@ -103,7 +121,7 @@ func (s *RegistryService) Start() {
|
||||
for _, ch := range s.consumers {
|
||||
ch := ch
|
||||
go func() {
|
||||
if err := ch.consumer.ConsumeMessages(ch.handler); err != nil && s.logger != nil {
|
||||
if err := ch.consumer.ConsumeMessages(ch.handler); err != nil {
|
||||
s.logger.Warn("Discovery consumer stopped with error", zap.String("event", ch.event), zap.Error(err))
|
||||
}
|
||||
}()
|
||||
@@ -247,7 +265,7 @@ func (s *RegistryService) initKV(msgBroker mb.Broker) {
|
||||
s.logWarn("Discovery KV disabled: JetStream not configured")
|
||||
return
|
||||
}
|
||||
store, err := NewKVStore(s.logger, js, "")
|
||||
store, err := NewKVStore(s.logger, js, "", s.kvOptions...)
|
||||
if err != nil {
|
||||
s.logWarn("Failed to initialise discovery KV store", zap.Error(err))
|
||||
return
|
||||
@@ -331,21 +349,21 @@ func (s *RegistryService) persistEntry(entry RegistryEntry) {
|
||||
}
|
||||
|
||||
func (s *RegistryService) logWarn(message string, fields ...zap.Field) {
|
||||
if s.logger == nil {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
s.logger.Warn(message, fields...)
|
||||
}
|
||||
|
||||
func (s *RegistryService) logDebug(message string, fields ...zap.Field) {
|
||||
if s.logger == nil {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
s.logger.Debug(message, fields...)
|
||||
}
|
||||
|
||||
func (s *RegistryService) logInfo(message string, fields ...zap.Field) {
|
||||
if s.logger == nil {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
s.logger.Info(message, fields...)
|
||||
|
||||
Reference in New Issue
Block a user