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 {
go func() {
select {
// if LoadInterval is positive, will wait for the interval and then run with new config
case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)):
loadedConfig, err := val.(ConfigLoader).LoadConfig(ctx)
if err != nil {
Log().Error("loading dynamic config failed", zap.Error(err))
for {
select {
// if LoadInterval is positive, will wait for the interval and then run with new config
case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)):
loadedConfig, err := val.(ConfigLoader).LoadConfig(ctx)
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
}
runLoadedConfig(loadedConfig)
case <-ctx.Done():
return
}
}()
} else {

Loading…
Cancel
Save