Package io.dapr.durabletask
Class RetryPolicy
java.lang.Object
io.dapr.durabletask.RetryPolicy
A declarative retry policy that can be configured for activity or sub-orchestration calls.
-
Constructor Summary
ConstructorsConstructorDescriptionRetryPolicy(int maxNumberOfAttempts, Duration firstRetryInterval) Creates a newRetryPolicyobject. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets the configured exponential backoff coefficient used to determine the delay between subsequent retries.Gets the configured amount of time to delay between the first and second attempt.intGets the configured maximum number of task invocation attempts.Gets the configured maximum time to delay between attempts.Gets the configured overall timeout for retries.setBackoffCoefficient(double backoffCoefficient) Sets the exponential backoff coefficient used to determine the delay between subsequent retries.setFirstRetryInterval(Duration firstRetryInterval) Sets the amount of time to delay between the first and second attempt.setMaxNumberOfAttempts(int maxNumberOfAttempts) Sets the maximum number of task invocation attempts; must be 1 or greater.setMaxRetryInterval(Duration maxRetryInterval) Sets the maximum time to delay between attempts.setRetryTimeout(Duration retryTimeout) Sets the overall timeout for retries, regardless of the retry count.
-
Constructor Details
-
RetryPolicy
Creates a newRetryPolicyobject.- Parameters:
maxNumberOfAttempts- the maximum number of task invocation attempts; must be 1 or greaterfirstRetryInterval- the amount of time to delay between the first and second attempt- Throws:
IllegalArgumentException- ifmaxNumberOfAttemptsis zero or negative
-
-
Method Details
-
setMaxNumberOfAttempts
Sets the maximum number of task invocation attempts; must be 1 or greater.This value represents the number of times to attempt to execute the task. It does not represent the maximum number of times to retry the task. This is why the number must be 1 or greater.
- Parameters:
maxNumberOfAttempts- the maximum number of attempts; must be 1 or greater- Returns:
- this retry policy object
- Throws:
IllegalArgumentException- ifmaxNumberOfAttemptsis zero or negative
-
setFirstRetryInterval
Sets the amount of time to delay between the first and second attempt.- Parameters:
firstRetryInterval- the amount of time to delay between the first and second attempt- Returns:
- this retry policy object
- Throws:
IllegalArgumentException- iffirstRetryIntervalisnull, zero, or negative.
-
setBackoffCoefficient
Sets the exponential backoff coefficient used to determine the delay between subsequent retries. Must be 1.0 or greater.To avoid extremely long delays between retries, consider also specifying a maximum retry interval using the
setMaxRetryInterval(java.time.Duration)method.- Parameters:
backoffCoefficient- the exponential backoff coefficient- Returns:
- this retry policy object
- Throws:
IllegalArgumentException- ifbackoffCoefficientis less than 1.0
-
setMaxRetryInterval
Sets the maximum time to delay between attempts.It's recommended to set a maximum retry interval whenever using a backoff coefficient that's greater than the default of 1.0.
- Parameters:
maxRetryInterval- the maximum time to delay between attempts ornullto remove the maximum retry interval- Returns:
- this retry policy object
-
setRetryTimeout
Sets the overall timeout for retries, regardless of the retry count.- Parameters:
retryTimeout- the overall timeout for retries- Returns:
- this retry policy object
-
getMaxNumberOfAttempts
public int getMaxNumberOfAttempts()Gets the configured maximum number of task invocation attempts.- Returns:
- the configured maximum number of task invocation attempts.
-
getFirstRetryInterval
Gets the configured amount of time to delay between the first and second attempt.- Returns:
- the configured amount of time to delay between the first and second attempt
-
getBackoffCoefficient
public double getBackoffCoefficient()Gets the configured exponential backoff coefficient used to determine the delay between subsequent retries.- Returns:
- the configured exponential backoff coefficient used to determine the delay between subsequent retries
-
getMaxRetryInterval
Gets the configured maximum time to delay between attempts.- Returns:
- the configured maximum time to delay between attempts
-
getRetryTimeout
Gets the configured overall timeout for retries.- Returns:
- the configured overall timeout for retries
-