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

com.github.rbuck.retry.Incremental Maven / Gradle / Ivy

Go to download

Lets developers make their applications more resilient by adding robust transient fault handling logic. Transient faults are errors that occur because of some temporary condition such as network connectivity issues or service unavailability. Typically, if you retry the operation that resulted in a transient error a short time later, you find that the error has disappeared.

There is a newer version: 1.2
Show newest version
package com.github.rbuck.retry;

/**
 * Implementation for an incremental retry strategy with fixed initial and
 * incremental wait times.
 *
 * @author Robert Buck ([email protected])
 */
public class Incremental implements RetryStrategy {

    private final int maxRetries;
    private final long initialInterval;
    private final long incrementalInterval;
    private int retryCount;

    public Incremental(int maxRetries, long initialInterval, long incrementalInterval) {
        this.maxRetries = maxRetries;
        this.initialInterval = initialInterval;
        this.incrementalInterval = incrementalInterval;
    }

    @Override
    public boolean permitsRetry() {
        if (retryCount < maxRetries) {
            retryCount++;
            return true;
        }
        return false;
    }

    @Override
    public long getRetryDelay() {
        return initialInterval + incrementalInterval * retryCount;
    }

    @Override
    public int getRetryCount() {
        return retryCount;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy