Package com.google.cloud.hadoop.util
Class ResilientOperation
java.lang.Object
com.google.cloud.hadoop.util.ResilientOperation
A class which defines static functions to be called to make a user-provided function more
resilient by attempting retries.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleannextSleep(com.google.api.client.util.BackOff backoff, com.google.api.client.util.Sleeper sleeper, Exception currentException) Determines the amount to sleep for and sleeps if needed.static <T,X extends Exception>
Tretry(Callable<T> callable, com.google.api.client.util.BackOff backoff, RetryDeterminer<? super X> retryDet, Class<X> classType) Retries the given executable function in the case of transient errors defined by the RetryDeterminer and uses default sleeper.static <T,X extends Exception>
Tretry(Callable<T> callable, com.google.api.client.util.BackOff backoff, RetryDeterminer<? super X> retryDet, Class<X> classType, com.google.api.client.util.Sleeper sleeper) Retries the given executable function in the case of transient errors defined by the RetryDeterminer.
-
Constructor Details
-
ResilientOperation
public ResilientOperation()
-
-
Method Details
-
retry
public static <T,X extends Exception> T retry(Callable<T> callable, com.google.api.client.util.BackOff backoff, RetryDeterminer<? super X> retryDet, Class<X> classType, com.google.api.client.util.Sleeper sleeper) throws X, InterruptedException Retries the given executable function in the case of transient errors defined by the RetryDeterminer.Does not support unchecked exceptions that are not instances of RuntimeException.
- Type Parameters:
T- Type of object returned by the call.X- Type of exception thrown by the call.- Parameters:
callable- Callable to retry execution ofbackoff- BackOff to determine how long to sleep forretryDet- RetryDeterminer to determine when to retryclassType- class type of Xsleeper- Used to sleep- Throws:
X- What is thrown from the executable or the RetryDeterminerInterruptedException- - Exception thrown from sleep
-
retry
public static <T,X extends Exception> T retry(Callable<T> callable, com.google.api.client.util.BackOff backoff, RetryDeterminer<? super X> retryDet, Class<X> classType) throws X, InterruptedException Retries the given executable function in the case of transient errors defined by the RetryDeterminer and uses default sleeper.- Type Parameters:
T- Type of object returned by the call.X- Type of exception thrown by the call.- Parameters:
callable- Callable to retry execution ofbackoff- BackOff to determine how long to sleep forretryDet- RetryDeterminer to determine when to retryclassType- class type of X- Throws:
X- What is thrown from the executable or the RetryDeterminerInterruptedException- - Exception thrown from sleep
-
nextSleep
public static boolean nextSleep(com.google.api.client.util.BackOff backoff, com.google.api.client.util.Sleeper sleeper, Exception currentException) throws InterruptedException Determines the amount to sleep for and sleeps if needed.- Parameters:
backoff- BackOff to determine how long to sleep forsleeper- Used to sleepcurrentException- exception that caused the retry and sleep. For logging.- Throws:
InterruptedException- if sleep is interrupted
-