in src/retry/retryer.go [41:58]
func (retryer *RepeatableExponentialRetryer) Call() (err error) {
attempt := 0
failedAttemptsSoFar := 0
for {
err := retryer.CallableFunc()
if err == nil || failedAttemptsSoFar == retryer.MaxAttempts {
return err
}
sleep := retryer.NextSleepTime(attempt)
if int(sleep/time.Millisecond) > retryer.MaxDelayInMilli {
attempt = 0
sleep = retryer.NextSleepTime(attempt)
}
time.Sleep(sleep)
attempt++
failedAttemptsSoFar++
}
}