Exponential Backoff
class ExponentialBackoff(baseTimeMillis: Long, multiplier: Float, minimumDelayMillis: Long, maximumDelayMillis: Long) : DelayStrategy
Content copied to clipboard
DelayStrategy with an exponentially increasing delay, calculated with getExponentialBackoffMillis.
minimumDelayMillis indicates the capped minimum delay (in milliseconds). maximumDelayMillis indicates the capped maximum delay (in milliseconds).
Delay is calculated using the following formula:
delay = base * multiplier ^ iteration
For example (using base = 100 and multiplier = 2):
| iteration | delay |
|---|---|
| 0 | 100 |
| 1 | 200 |
| 2 | 400 |
| 3 | 800 |
| 4 | 1600 |
| ... | ... |
Inspired by: Exponential Backoff And Jitter
Constructors
ExponentialBackoff
Link copied to clipboard
fun ExponentialBackoff(baseTimeMillis: Long = DEFAULT_BASE_TIME_MILLIS, multiplier: Float = DEFAULT_MULTIPLIER, minimumDelayMillis: Long = DEFAULT_MINIMUM_DELAY, maximumDelayMillis: Long = DEFAULT_MAXIMUM_DELAY)
Content copied to clipboard