import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
/**
* @description 重试utils
*/
public class RetryUtils {
/**
* 默认用法(最多重试3次),有入参,返回null表示多次重试依旧失败
*/
public static <T, R> R retryDo(Function<T, R> doFunction, T doFunctionRequest, Predicate<R> checkFunction, Logger log, String logDesc) {
return retryDo(doFunction, doFunctionRequest, checkFunction, 2, log, logDesc);
}
/**
* 默认用法(最多重试3次),无入参,返回null表示多次重试依旧失败
*/
public static <R> R retryDo(Supplier<R> supplier, Predicate<R> checkFunction, Logger log, String logDesc) {
return retryDo(supplier, checkFunction, 2, log, logDesc);
}
/**
* 返回null表示多次重试依旧失败
*/
public static <T, R> R retryDo(Function<T,
RetryUtils 重试工具
最新推荐文章于 2023-06-21 15:02:17 发布