Class ExponentialBackOff.Builder

java.lang.Object
com.google.api.client.util.ExponentialBackOff.Builder
Enclosing class:
ExponentialBackOff

public static class ExponentialBackOff.Builder extends Object
Builder for ExponentialBackOff.

Implementation is not thread-safe.

  • Field Details

    • initialIntervalMillis

      int initialIntervalMillis
      The initial retry interval in milliseconds.
    • randomizationFactor

      double randomizationFactor
      The randomization factor to use for creating a range around the retry interval.

      A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.

    • multiplier

      double multiplier
      The value to multiply the current interval with for each retry attempt.
    • maxIntervalMillis

      int maxIntervalMillis
      The maximum value of the back off period in milliseconds. Once the retry interval reaches this value it stops increasing.
    • maxElapsedTimeMillis

      int maxElapsedTimeMillis
      The maximum elapsed time in milliseconds after instantiating ExponentialBackOff or calling ExponentialBackOff.reset() after which ExponentialBackOff.nextBackOffMillis() returns BackOff.STOP.
    • nanoClock

      NanoClock nanoClock
      Nano clock.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • build

      public ExponentialBackOff build()
      Builds a new instance of ExponentialBackOff.
    • getInitialIntervalMillis

      public final int getInitialIntervalMillis()
      Returns the initial retry interval in milliseconds. The default value is ExponentialBackOff.DEFAULT_INITIAL_INTERVAL_MILLIS.
    • setInitialIntervalMillis

      public ExponentialBackOff.Builder setInitialIntervalMillis(int initialIntervalMillis)
      Sets the initial retry interval in milliseconds. The default value is ExponentialBackOff.DEFAULT_INITIAL_INTERVAL_MILLIS. Must be > 0.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • getRandomizationFactor

      public final double getRandomizationFactor()
      Returns the randomization factor to use for creating a range around the retry interval. The default value is ExponentialBackOff.DEFAULT_RANDOMIZATION_FACTOR.

      A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • setRandomizationFactor

      public ExponentialBackOff.Builder setRandomizationFactor(double randomizationFactor)
      Sets the randomization factor to use for creating a range around the retry interval. The default value is ExponentialBackOff.DEFAULT_RANDOMIZATION_FACTOR. Must fall in the range 0 <= randomizationFactor < 1.

      A randomization factor of 0.5 results in a random period ranging between 50% below and 50% above the retry interval.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • getMultiplier

      public final double getMultiplier()
      Returns the value to multiply the current interval with for each retry attempt. The default value is ExponentialBackOff.DEFAULT_MULTIPLIER.
    • setMultiplier

      public ExponentialBackOff.Builder setMultiplier(double multiplier)
      Sets the value to multiply the current interval with for each retry attempt. The default value is ExponentialBackOff.DEFAULT_MULTIPLIER. Must be >= 1.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • getMaxIntervalMillis

      public final int getMaxIntervalMillis()
      Returns the maximum value of the back off period in milliseconds. Once the current interval reaches this value it stops increasing. The default value is ExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS. Must be >= initialInterval.
    • setMaxIntervalMillis

      public ExponentialBackOff.Builder setMaxIntervalMillis(int maxIntervalMillis)
      Sets the maximum value of the back off period in milliseconds. Once the current interval reaches this value it stops increasing. The default value is ExponentialBackOff.DEFAULT_MAX_INTERVAL_MILLIS.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • getMaxElapsedTimeMillis

      public final int getMaxElapsedTimeMillis()
      Returns the maximum elapsed time in milliseconds. The default value is ExponentialBackOff.DEFAULT_MAX_ELAPSED_TIME_MILLIS.

      If the time elapsed since an ExponentialBackOff instance is created goes past the max_elapsed_time then the method ExponentialBackOff.nextBackOffMillis() starts returning BackOff.STOP. The elapsed time can be reset by calling ExponentialBackOff.reset().

    • setMaxElapsedTimeMillis

      public ExponentialBackOff.Builder setMaxElapsedTimeMillis(int maxElapsedTimeMillis)
      Sets the maximum elapsed time in milliseconds. The default value is ExponentialBackOff.DEFAULT_MAX_ELAPSED_TIME_MILLIS. Must be > 0.

      If the time elapsed since an ExponentialBackOff instance is created goes past the max_elapsed_time then the method ExponentialBackOff.nextBackOffMillis() starts returning BackOff.STOP. The elapsed time can be reset by calling ExponentialBackOff.reset().

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

    • getNanoClock

      public final NanoClock getNanoClock()
      Returns the nano clock.
    • setNanoClock

      public ExponentialBackOff.Builder setNanoClock(NanoClock nanoClock)
      Sets the nano clock (NanoClock.SYSTEM by default).

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.