Share via


RetryPolicy Class

  • java.lang.Object
    • com.microsoft.durabletask.RetryPolicy

public final class RetryPolicy

A declarative retry policy that can be configured for activity or sub-orchestration calls.

Constructor Summary

Constructor Description
RetryPolicy(int maxNumberOfAttempts, Duration firstRetryInterval)

Creates a new RetryPolicy object.

Method Summary

Modifier and Type Method and Description
double getBackoffCoefficient()

Gets the configured exponential backoff coefficient used to determine the delay between subsequent retries.

java.time.Duration getFirstRetryInterval()

Gets the configured amount of time to delay between the first and second attempt.

int getMaxNumberOfAttempts()

Gets the configured maximum number of task invocation attempts.

java.time.Duration getMaxRetryInterval()

Gets the configured maximum time to delay between attempts.

java.time.Duration getRetryTimeout()

Gets the configured overall timeout for retries.

RetryPolicy setBackoffCoefficient(double backoffCoefficient)

Sets the exponential backoff coefficient used to determine the delay between subsequent retries.

RetryPolicy setFirstRetryInterval(Duration firstRetryInterval)

Sets the amount of time to delay between the first and second attempt.

RetryPolicy setMaxNumberOfAttempts(int maxNumberOfAttempts)

Sets the maximum number of task invocation attempts; must be 1 or greater.

RetryPolicy setMaxRetryInterval(Duration maxRetryInterval)

Sets the maximum time to delay between attempts.

RetryPolicy setRetryTimeout(Duration retryTimeout)

Sets the overall timeout for retries, regardless of the retry count.

Methods inherited from java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

Constructor Details

RetryPolicy

public RetryPolicy(int maxNumberOfAttempts, Duration firstRetryInterval)

Creates a new RetryPolicy object.

Parameters:

maxNumberOfAttempts - the maximum number of task invocation attempts; must be 1 or greater
firstRetryInterval - the amount of time to delay between the first and second attempt

Method Details

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

getFirstRetryInterval

public Duration 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

getMaxNumberOfAttempts

public int getMaxNumberOfAttempts()

Gets the configured maximum number of task invocation attempts.

Returns:

the configured maximum number of task invocation attempts.

getMaxRetryInterval

public Duration getMaxRetryInterval()

Gets the configured maximum time to delay between attempts.

Returns:

the configured maximum time to delay between attempts

getRetryTimeout

public Duration getRetryTimeout()

Gets the configured overall timeout for retries.

Returns:

the configured overall timeout for retries

setBackoffCoefficient

public RetryPolicy setBackoffCoefficient(double backoffCoefficient)

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 method.

Parameters:

backoffCoefficient - the exponential backoff coefficient

Returns:

this retry policy object

setFirstRetryInterval

public RetryPolicy setFirstRetryInterval(Duration firstRetryInterval)

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

setMaxNumberOfAttempts

public RetryPolicy setMaxNumberOfAttempts(int maxNumberOfAttempts)

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

setMaxRetryInterval

public RetryPolicy setMaxRetryInterval(Duration maxRetryInterval)

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 or null to remove the maximum retry interval

Returns:

this retry policy object

setRetryTimeout

public RetryPolicy setRetryTimeout(Duration retryTimeout)

Sets the overall timeout for retries, regardless of the retry count.

Parameters:

retryTimeout - the overall timeout for retries

Returns:

this retry policy object

Applies to