Package org.apache.bookkeeper.zookeeper
Class ExponentialBackOffWithDeadlinePolicy
- java.lang.Object
-
- org.apache.bookkeeper.zookeeper.ExponentialBackOffWithDeadlinePolicy
-
- All Implemented Interfaces:
RetryPolicy
public class ExponentialBackOffWithDeadlinePolicy extends java.lang.Object implements RetryPolicy
Backoff time determined based as a multiple of baseBackoffTime. The multiple value depends on retryCount. If the retry schedule exceeds the deadline, we schedule a final attempt exactly at the deadline.
-
-
Field Summary
Fields Modifier and Type Field Description static int
JITTER_PERCENT
(package private) static int[]
RETRY_BACKOFF
-
Constructor Summary
Constructors Constructor Description ExponentialBackOffWithDeadlinePolicy(long baseBackoffTime, long deadline, int maxRetries)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allowRetry(int retryCount, long elapsedRetryTime)
Called when retrying an operation failed for some reason.long
nextRetryWaitTime(int retryCount, long elapsedRetryTime)
Called before making an attempt to retry a failed operation.
-
-
-
Field Detail
-
RETRY_BACKOFF
static final int[] RETRY_BACKOFF
-
JITTER_PERCENT
public static final int JITTER_PERCENT
- See Also:
- Constant Field Values
-
-
Method Detail
-
allowRetry
public boolean allowRetry(int retryCount, long elapsedRetryTime)
Description copied from interface:RetryPolicy
Called when retrying an operation failed for some reason. Return true if another attempt is allowed to make.- Specified by:
allowRetry
in interfaceRetryPolicy
- Parameters:
retryCount
- The number of times retried so far (1 for the first time).elapsedRetryTime
- The elapsed time since the operation attempted. (in milliseconds)- Returns:
- true if anther attempt is allowed to make. otherwise, false.
-
nextRetryWaitTime
public long nextRetryWaitTime(int retryCount, long elapsedRetryTime)
Description copied from interface:RetryPolicy
Called before making an attempt to retry a failed operation. Return 0 if an attempt needs to be made immediately.- Specified by:
nextRetryWaitTime
in interfaceRetryPolicy
- Parameters:
retryCount
- The number of times retried so far (0 for the first time).elapsedRetryTime
- The elapsed time since the operation attempted. (in milliseconds)- Returns:
- the elapsed time that the attempt needs to wait before retrying. (in milliseconds)
-
-