@@ -384,20 +384,21 @@ func (l *limitRegistry) loadOverrides(ctx context.Context) error {
384384}
385385
386386// loadOverridesWithRetry tries to loadOverrides, retrying at least every 30
387- // seconds upon failure, up to a maximum elapsed time interval .
388- func (l * limitRegistry ) loadOverridesWithRetry (ctx context.Context , interval time. Duration ) error {
387+ // seconds upon failure.
388+ func (l * limitRegistry ) loadOverridesWithRetry (ctx context.Context ) error {
389389 retries := 0
390- started := time .Now ()
391390 for {
392391 err := l .loadOverrides (ctx )
393- if err ! = nil {
394- l . logger . Errf ( "loading overrides: %v" , err )
392+ if err = = nil {
393+ return nil
395394 }
396- if err == nil || time .Since (started ) > interval {
395+ l .logger .Errf ("loading overrides: %v" , err )
396+ retries ++
397+ select {
398+ case <- time .After (core .RetryBackoff (retries , time .Second / 6 , time .Second * 15 , 2 )):
399+ case <- ctx .Done ():
397400 return err
398401 }
399- retries ++
400- time .Sleep (core .RetryBackoff (retries , time .Second / 6 , time .Second * 15 , 2 ))
401402 }
402403}
403404
@@ -407,7 +408,7 @@ func (l *limitRegistry) NewRefresher(interval time.Duration) context.CancelFunc
407408 ctx , cancel := context .WithCancel (context .Background ())
408409
409410 go func () {
410- err := l .loadOverridesWithRetry (ctx , interval )
411+ err := l .loadOverridesWithRetry (ctx )
411412 if err != nil {
412413 l .logger .Errf ("loading overrides (initial): %v" , err )
413414 }
@@ -417,7 +418,7 @@ func (l *limitRegistry) NewRefresher(interval time.Duration) context.CancelFunc
417418 for {
418419 select {
419420 case <- ticker .C :
420- err := l .loadOverridesWithRetry (ctx , interval )
421+ err := l .loadOverridesWithRetry (ctx )
421422 if err != nil {
422423 l .logger .Errf ("loading overrides (refresh): %v" , err )
423424 }
0 commit comments