UpdateBackoff updates backoff metadata
(actualUrl *url.URL, err error, responseCode int)
| 84 | |
| 85 | // UpdateBackoff updates backoff metadata |
| 86 | func (b *URLBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode int) { |
| 87 | // range for retry counts that we store is [0,13] |
| 88 | if responseCode > maxResponseCode || serverIsOverloadedSet.Has(responseCode) { |
| 89 | b.Backoff.Next(b.baseUrlKey(actualUrl), b.Backoff.Clock.Now()) |
| 90 | return |
| 91 | } else if responseCode >= 300 || err != nil { |
| 92 | klog.V(4).Infof("Client is returning errors: code %v, error %v", responseCode, err) |
| 93 | } |
| 94 | |
| 95 | //If we got this far, there is no backoff required for this URL anymore. |
| 96 | b.Backoff.Reset(b.baseUrlKey(actualUrl)) |
| 97 | } |
| 98 | |
| 99 | // CalculateBackoff takes a url and back's off exponentially, |
| 100 | // based on its knowledge of existing failures. |