public final class Retry extends Object
Callable
as long as it returns null
(interpreted
as "no answer yet") or given time passes. This helper implements similar semantics regarding
caller threads as Lock.tryLock(long, TimeUnit)
method does:
blocks the caller thread until operation return non-null
value within the given waiting
time and the current thread has not been interrupted.Modifier and Type | Method and Description |
---|---|
static <R> R |
retry(long time,
TimeUnit unit,
long sleepMillis,
Callable<R> operation,
Predicate<Exception> retryPredicate,
R defaultResult)
Retries for given amount of time (time, unit) the passed in operation, sleeping given
sleepMills between retries. |
public static <R> R retry(long time, TimeUnit unit, long sleepMillis, Callable<R> operation, Predicate<Exception> retryPredicate, R defaultResult) throws InterruptedException
sleepMills
between retries. In case operation returns null
, it is assumed
"is not done yet" state, so retry will happen (if time barrier allows). If time barrier
passes, and still null
("is not done yet") is returned from operation, the
defaultResult
is returned.InterruptedException
Copyright © 2010–2022 The Apache Software Foundation. All rights reserved.