Reset retry interval if we spent long enough processing events

This commit is contained in:
Adam Harrison committed 2016-03-16 13:41:18 +00:00
1 parent 08e9db900a
commit 922f465ecb
1 file changed
+4
+4
View File
@@ -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)