core: Load config at interval instead of just once

This commit is contained in:
Matthew Holt 2021-11-16 13:08:22 -07:00
parent b47af6ef04
commit 7f364c777a
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
1 changed files with 12 additions and 9 deletions

View File

@ -493,6 +493,7 @@ func finishSettingUp(ctx Context, cfg *Config) error {
} }
if cfg.Admin.Config.LoadInterval > 0 { if cfg.Admin.Config.LoadInterval > 0 {
go func() { go func() {
for {
select { select {
// if LoadInterval is positive, will wait for the interval and then run with new config // if LoadInterval is positive, will wait for the interval and then run with new config
case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)): case <-time.After(time.Duration(cfg.Admin.Config.LoadInterval)):
@ -503,8 +504,10 @@ func finishSettingUp(ctx Context, cfg *Config) error {
} }
runLoadedConfig(loadedConfig) runLoadedConfig(loadedConfig)
case <-ctx.Done(): case <-ctx.Done():
Log().Info("stopping config load interval")
return return
} }
}
}() }()
} else { } else {
// if no LoadInterval is provided, will load config synchronously // if no LoadInterval is provided, will load config synchronously