Class ExponentialBackOffSchedulingStrategy

java.lang.Object
org.apache.http.impl.client.cache.ExponentialBackOffSchedulingStrategy
All Implemented Interfaces:
Closeable, AutoCloseable, SchedulingStrategy

@Contract(threading=SAFE) public class ExponentialBackOffSchedulingStrategy extends Object implements SchedulingStrategy
An implementation that backs off exponentially based on the number of consecutive failed attempts stored in the AsynchronousValidationRequest. It uses the following defaults:
         no delay in case it was never tried or didn't fail so far
     6 secs delay for one failed attempt (= getInitialExpiryInMillis())
    60 secs delay for two failed attempts
    10 mins delay for three failed attempts
   100 mins delay for four failed attempts
  ~16 hours delay for five failed attempts
   24 hours delay for six or more failed attempts (= getMaxExpiryInMillis())
 
The following equation is used to calculate the delay for a specific revalidation request:
     delay = getInitialExpiryInMillis() * Math.pow(getBackOffRate(),
     AsynchronousValidationRequest.getConsecutiveFailedAttempts() - 1))
 
The resulting delay won't exceed getMaxExpiryInMillis().
Since:
4.3
  • Field Details

    • DEFAULT_BACK_OFF_RATE

      public static final long DEFAULT_BACK_OFF_RATE
      See Also:
    • DEFAULT_INITIAL_EXPIRY_IN_MILLIS

      public static final long DEFAULT_INITIAL_EXPIRY_IN_MILLIS
    • DEFAULT_MAX_EXPIRY_IN_MILLIS

      public static final long DEFAULT_MAX_EXPIRY_IN_MILLIS
  • Constructor Details

  • Method Details