
com.crabshue.commons.retryable.RetryPolicyBuilder Maven / Gradle / Ivy
package com.crabshue.commons.retryable;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.Validate;
import net.jodah.failsafe.RetryPolicy;
/**
* {@link RetryPolicy} builder.
*
*/
public class RetryPolicyBuilder {
/**
* Build a {@link RetryPolicy} with {@link RetryOptions}.
*
* @param retryOptions the retry options.
* @return the retry policy.
*/
public static RetryPolicy newRetryPolicy(final RetryOptions retryOptions) {
Validate.notNull(retryOptions);
return new RetryPolicy()
.retryOn(Exception.class)
.withDelay(retryOptions.getSleepBetweenRetriesInMilliseconds(), TimeUnit.MILLISECONDS)
.withMaxRetries(retryOptions.getMaximumNumberOfRetries());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy