calculateRetryWaitingPeriod method
int
calculateRetryWaitingPeriod(
- int retryCount
)
Implementation
int calculateRetryWaitingPeriod(int retryCount) {
// Exponential backoff with jitter
final attemptsUsed = (maxRetryAttempts - retryCount);
final baseMs = 500; // base delay in ms
final cappedAttempts = min(attemptsUsed, 10); // prevents huge shifts
final exponential =
baseMs * (1 << cappedAttempts); // base * 2^cappedAttempts
final jitter = _rand.nextInt(200); // 0..199 ms jitter
var retryPauseDurationMs = exponential + jitter;
//Prevents too long retry awaits
if (retryPauseDurationMs > maxDelayMs) {
retryPauseDurationMs = maxDelayMs;
}
return retryPauseDurationMs;
}