Retries a function until it succeeds or a maximum number of retries has been reached.
Retries a function until it succeeds or a maximum number of retries has been reached.
The maximum number of retries, defaults to Long.MaxValue. The function f is called at most maxRetryTimes + 1 times. In other words, iff maxRetryTimes == 0, f will be called exactly once, iff maxRetryTimes == 1, it will be called at most twice, etc.
The function to (re)try
An optional log function to report failed iterations to. By default prints the thrown Exception to the console.
A successful T if the function succeeded within maxRetryTimes or the last thrown NonFatal Exception otherwise. If the function throws a fatal Error, it is not retried and the error is rethrown.
Retries a function until it succeeds, a maximum number of retries has been reached, or a retry timeout has been reached.
Retries a function until it succeeds, a maximum number of retries has been reached, or a retry timeout has been reached. Each retry iteration is being exponentially delayed. The delay grows from a given start value and by a given factor until it reaches a given maximum delay value. If maxRetryTimeout is reached, the last function call is at the point of the timeout. E.g. if the initial delay is 1 second, the retry timeout 10 seconds and all other parameters at their default, the function will be retried after 1, 3 (1+2), 7 (1+2+4) and finally 10 seconds before it fails.
The maximum number of retries, defaults to Long.MaxValue. The function f is called at most maxRetryTimes + 1 times. In other words, iff maxRetryTimes == 0, f will be called exactly once, iff maxRetryTimes == 1, it will be called at most twice, etc.
The retry Deadline until which to retry the function, defaults to 1 day from now
The initial delay value, defaults to 1 nanosecond
The maximum delay value, defaults to 1 day
The factor by which the delay increases between retry iterations
The function to (re)try
An optional log function to report failed iterations to. By default prints the thrown Exception to the console.
A successful T if the function succeeded within maxRetryTimes and maxRetryTimeout or the last thrown NonFatal Exception otherwise. If the function throws a fatal Error, it is not retried and the error is rethrown.
Helper to retry potentially failing functions
10/Apr/2015 16:55