diff --git a/nodeconf/config.go b/nodeconf/config.go index 911ee745..1d117d88 100644 --- a/nodeconf/config.go +++ b/nodeconf/config.go @@ -9,6 +9,10 @@ type ConfigGetter interface { GetNodeConf() Configuration } +type ConfigUpdateGetter interface { + GetNodeConfUpdateInterval() int +} + var ( ErrConfigurationNotFound = errors.New("node nodeConf not found") ) diff --git a/nodeconf/service.go b/nodeconf/service.go index d43e62cc..2721a940 100644 --- a/nodeconf/service.go +++ b/nodeconf/service.go @@ -49,7 +49,12 @@ func (s *service) Init(a *app.App) (err error) { lastStored = s.config err = nil } - s.sync = periodicsync.NewPeriodicSync(600, 0, func(ctx context.Context) (err error) { + var updatePeriodSec = 600 + if confUpd, ok := a.MustComponent("config").(ConfigUpdateGetter); ok && confUpd.GetNodeConfUpdateInterval() > 0 { + updatePeriodSec = confUpd.GetNodeConfUpdateInterval() + } + + s.sync = periodicsync.NewPeriodicSync(updatePeriodSec, 0, func(ctx context.Context) (err error) { err = s.updateConfiguration(ctx) if err != nil { if err == ErrConfigurationNotChanged {