Class RequestRetryOptions

java.lang.Object
com.azure.storage.common.policy.RequestRetryOptions

public final class RequestRetryOptions extends Object
Configuration options for RequestRetryPolicy.
  • Constructor Details

    • RequestRetryOptions

      public RequestRetryOptions()
      Configures how the HttpPipeline should retry requests.
    • RequestRetryOptions

      public RequestRetryOptions(RetryPolicyType retryPolicyType, Integer maxTries, Integer tryTimeoutInSeconds, Long retryDelayInMs, Long maxRetryDelayInMs, String secondaryHost)
      Configures how the HttpPipeline should retry requests.
      Parameters:
      retryPolicyType - Optional. A RetryPolicyType specifying the type of retry pattern to use, default value is EXPONENTIAL.
      maxTries - Optional. Maximum number of attempts an operation will be retried, default is 4.
      tryTimeoutInSeconds - Optional. Specified the maximum time allowed before a request is cancelled and assumed failed, default is Integer.MAX_VALUE s.

      This value should be based on the bandwidth available to the host machine and proximity to the Storage service, a good starting point may be 60 seconds per MB of anticipated payload size.

      retryDelayInMs - Optional. Specifies the amount of delay to use before retrying an operation, default value is 4ms when retryPolicyType is EXPONENTIAL and 30ms when retryPolicyType is FIXED.
      maxRetryDelayInMs - Optional. Specifies the maximum delay allowed before retrying an operation, default value is 120ms.
      secondaryHost - Optional. Specified a secondary Storage account to retry requests against, default is none.

      Before setting this understand the issues around reading stale and potentially-inconsistent data, view these Azure Docs for more information.

      Throws:
      IllegalArgumentException - If getRetryDelayInMs and getMaxRetryDelayInMs are not both null or non-null or retryPolicyType isn't RetryPolicyType.EXPONENTIAL or RetryPolicyType.FIXED.
    • RequestRetryOptions

      public RequestRetryOptions(RetryPolicyType retryPolicyType, Integer maxTries, Duration tryTimeout, Duration retryDelay, Duration maxRetryDelay, String secondaryHost)
      Configures how the HttpPipeline should retry requests.
      Parameters:
      retryPolicyType - Optional. A RetryPolicyType specifying the type of retry pattern to use, default value is EXPONENTIAL.
      maxTries - Optional. Maximum number of attempts an operation will be retried, default is 4.
      tryTimeout - Optional. Specified the maximum time allowed before a request is cancelled and assumed failed, default is Integer.MAX_VALUE.

      This value should be based on the bandwidth available to the host machine and proximity to the Storage service, a good starting point may be 60 seconds per MB of anticipated payload size.

      retryDelay - Optional. Specifies the amount of delay to use before retrying an operation, default value is 4s when retryPolicyType is EXPONENTIAL and 30s when retryPolicyType is FIXED.
      maxRetryDelay - Optional. Specifies the maximum delay allowed before retrying an operation, default value is 120s.
      secondaryHost - Optional. Specified a secondary Storage account to retry requests against, default is none.

      Before setting this understand the issues around reading stale and potentially-inconsistent data, view these Azure Docs for more information.

      Throws:
      IllegalArgumentException - If getRetryDelayInMs and getMaxRetryDelayInMs are not both null or non-null or retryPolicyType isn't RetryPolicyType.EXPONENTIAL or RetryPolicyType.FIXED.
  • Method Details

    • getMaxTries

      public int getMaxTries()
      Returns:
      the maximum number of retries that will be attempted.
    • getTryTimeout

      @Deprecated public int getTryTimeout()
      Deprecated.
      Returns:
      the maximum time, in seconds, allowed for a request until it is considered timed out.
    • getTryTimeoutDuration

      public Duration getTryTimeoutDuration()
      Returns:
      the maximum time, in seconds, allowed for a request until it is considered timed out.
    • getSecondaryHost

      public String getSecondaryHost()
      Returns:
      the URI of the secondary host where retries are attempted. If this is null then there is no secondary host and all retries are attempted against the original host.
    • getRetryDelayInMs

      @Deprecated public long getRetryDelayInMs()
      Deprecated.
      Returns:
      the delay in milliseconds between each retry attempt.
    • getRetryDelay

      public Duration getRetryDelay()
      Returns:
      the delay between each retry attempt.
    • getMaxRetryDelayInMs

      @Deprecated public long getMaxRetryDelayInMs()
      Deprecated.
      Returns:
      the maximum delay in milliseconds allowed between each retry.
    • getMaxRetryDelay

      public Duration getMaxRetryDelay()
      Returns:
      the maximum delay allowed between each retry.
    • fromRetryOptions

      public static RequestRetryOptions fromRetryOptions(RetryOptions retryOptions, Duration tryTimeout, String secondaryHost)
      Creates new RequestRetryOptions from RetryOptions and let specify storage specific parameters.
      Parameters:
      retryOptions - The RetryOptions.
      tryTimeout - Optional. Specified the maximum time allowed before a request is cancelled and assumed failed, default is Integer.MAX_VALUE.
      secondaryHost - Optional. Specified a secondary Storage account to retry requests against, default is none.
      Returns:
      The RequestRetryOptions
      Throws:
      IllegalArgumentException - if retryOptions can't be mapped to RequestRetryOptions.