diff options
Diffstat (limited to 'plugin/route53/route53.go')
-rw-r--r-- | plugin/route53/route53.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/plugin/route53/route53.go b/plugin/route53/route53.go index 930acc6d3..72cb74e8f 100644 --- a/plugin/route53/route53.go +++ b/plugin/route53/route53.go @@ -84,12 +84,15 @@ func (h *Route53) Run(ctx context.Context) error { return err } go func() { + timer := time.NewTimer(h.refresh) + defer timer.Stop() for { + timer.Reset(h.refresh) select { case <-ctx.Done(): log.Debugf("Breaking out of Route53 update loop for %v: %v", h.zoneNames, ctx.Err()) return - case <-time.After(h.refresh): + case <-timer.C: if err := h.updateZones(ctx); err != nil && ctx.Err() == nil /* Don't log error if ctx expired. */ { log.Errorf("Failed to update zones %v: %v", h.zoneNames, err) } |