fix(docker): fixed retry mechanism

This commit is contained in:
yusing 2025-05-01 06:48:38 +08:00
parent f06741428c
commit 2b4a70a550

View file

@ -136,12 +136,19 @@ func (w *DockerWatcher) EventsWithOptions(ctx context.Context, options DockerLis
err = nil err = nil
// trigger reload (clear routes) // trigger reload (clear routes)
eventCh <- reloadTrigger eventCh <- reloadTrigger
for !w.checkConnection(ctx) {
retry := time.NewTicker(dockerWatcherRetryInterval)
defer retry.Stop()
ok := false
for !ok {
select { select {
case <-ctx.Done(): case <-ctx.Done():
return return
case <-time.After(dockerWatcherRetryInterval): case <-retry.C:
continue if w.checkConnection(ctx) {
ok = true
break
}
} }
} }
// connection successful, trigger reload (reload routes) // connection successful, trigger reload (reload routes)