All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.openservices.log.http.comm.RetryStrategy Maven / Gradle / Ivy

package com.aliyun.openservices.log.http.comm;

public abstract class RetryStrategy {

    private static final int DEFAULT_RETRY_PAUSE_SCALE = 300; // milliseconds.

    public abstract boolean shouldRetry(Exception ex, RequestMessage request, int retries);

    public long getPauseDelay(int retries) {
        // make the pause time increase exponentially
        // based on an assumption that the more times it retries,
        // the less probability it succeeds.
        int scale = DEFAULT_RETRY_PAUSE_SCALE;
        long delay = (long) Math.pow(2, retries) * scale;

        return delay;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy