Browse Source

core: Load config at interval instead of just once

master
Matthew Holt 3 years ago
parent
commit
7f364c777a
No known key found for this signature in database GPG Key ID: 2A349DD577D586A5
  1. 21
      caddy.go

21
caddy.go

@ -493,17 +493,20 @@ func finishSettingUp(ctx Context, cfg *Config) error {
} }
if cfg.Admin.Config.LoadInterval > 0 { if cfg.Admin.Config.LoadInterval > 0 {
go func() { go func() {
select { for {
// if LoadInterval is positive, will wait for the interval and then run with new config select {
case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)): // if LoadInterval is positive, will wait for the interval and then run with new config
loadedConfig, err := val.(ConfigLoader).LoadConfig(ctx) case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)):
if err != nil { loadedConfig, err := val.(ConfigLoader).LoadConfig(ctx)
Log().Error("loading dynamic config failed", zap.Error(err)) if err != nil {
Log().Error("loading dynamic config failed", zap.Error(err))
return
}
runLoadedConfig(loadedConfig)
case <-ctx.Done():
Log().Info("stopping config load interval")
return return
} }
runLoadedConfig(loadedConfig)
case <-ctx.Done():
return
} }
}() }()
} else { } else {

Loading…
Cancel
Save