RetryOptions class final
Object holding options for retrying a function.
With the default configuration functions will be retried up-to 7 times (8 attempts in total), sleeping 1st, 2nd, 3rd, ..., 7th attempt:
- 400 ms +/- 25%
- 800 ms +/- 25%
- 1600 ms +/- 25%
- 3200 ms +/- 25%
- 6400 ms +/- 25%
- 12800 ms +/- 25%
- 25600 ms +/- 25%
Example
final r = RetryOptions();
final response = await r.retry(
// Make a GET request
() => http.get('https://google.com').timeout(Duration(seconds: 5)),
// Retry on SocketException or TimeoutException
retryIf: (e) => e is SocketException || e is TimeoutException,
);
print(response.body);
Constructors
- RetryOptions({Duration delayFactor = const Duration(milliseconds: 200), double randomizationFactor = 0.25, Duration maxDelay = const Duration(seconds: 30), int maxAttempts = 8})
-
Create a set of RetryOptions.
const
Properties
- delayFactor → Duration
-
Delay factor to double after every attempt.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxAttempts → int
-
Maximum number of attempts before giving up, defaults to 8.
final
- maxDelay → Duration
-
Maximum delay between retries, defaults to 30 seconds.
final
- randomizationFactor → double
-
Percentage the delay should be randomized, given as fraction between
0 and 1.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
delay(
int attempt) → Duration -
Delay after
attempt
number of attempts. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
retry<
T> (FutureOr< T> fn(), {FutureOr<bool> retryIf(Exception)?, FutureOr<void> onRetry(Exception)?}) → Future<T> -
Call
fn
retrying so long asretryIf
returntrue
for the exception thrown. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited