diff --git a/common/docker/client.go b/common/docker/client.go index 8dcec712..e341b4f0 100644 --- a/common/docker/client.go +++ b/common/docker/client.go @@ -85,6 +85,7 @@ func (c *Client) AddObserver(ob ContainerObserver) error { if err := c.AddEventListener(events); err != nil { Log.Errorf("[docker] Unable to add listener to Docker API: %s - retrying in %ds", err, retryInterval/time.Second) } else { + start := time.Now() for event := range events { switch event.Status { case "start": @@ -95,6 +96,9 @@ func (c *Client) AddObserver(ob ContainerObserver) error { ob.ContainerDied(id) } } + if time.Since(start) > retryInterval { + retryInterval = InitialInterval + } Log.Errorf("[docker] Event listener channel closed - retrying subscription in %ds", retryInterval/time.Second) } time.Sleep(retryInterval)