Browse Source
core: Load config at interval instead of just once
master
Matthew Holt
3 years ago
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
1 changed files with
12 additions and
9 deletions
-
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 { |
|
|