
com.github.rbuck.retry.Incremental Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-retry Show documentation
Show all versions of java-retry Show documentation
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.
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