Package org.miaixz.bus.core.lang.thread
Class RetryableTask<T>
java.lang.Object
org.miaixz.bus.core.lang.thread.RetryableTask<T>
- Type Parameters:
T- 任务结果类型
重试任务类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Method Summary
Modifier and TypeMethodDescription异步执行重试方法重试间隔时间execute()同步执行重试方法get()获取结果maxAttempts(long maxAttempts) 最大重试次数static <T> RetryableTask<T> retryForExceptions(Runnable run, Class<? extends Throwable>... ths) 重试根据指定的异常,没有返回值static <T> RetryableTask<T> retryForExceptions(Supplier<T> sup, Class<? extends Throwable>... ths) 重试根据指定的异常,有返回值static <T> RetryableTask<T> retryForPredicate(Runnable run, BiPredicate<T, Throwable> predicate) 重试根据指定的策略,没有返回值static <T> RetryableTask<T> retryForPredicate(Supplier<T> sup, BiPredicate<T, Throwable> predicate) 重试根据指定的策略,没有返回值
-
Method Details
-
retryForExceptions
@SafeVarargs public static <T> RetryableTask<T> retryForExceptions(Runnable run, Class<? extends Throwable>... ths) 重试根据指定的异常,没有返回值 -
retryForExceptions
@SafeVarargs public static <T> RetryableTask<T> retryForExceptions(Supplier<T> sup, Class<? extends Throwable>... ths) 重试根据指定的异常,有返回值 -
retryForPredicate
public static <T> RetryableTask<T> retryForPredicate(Runnable run, BiPredicate<T, Throwable> predicate) 重试根据指定的策略,没有返回值- Type Parameters:
T- 返回值类型- Parameters:
run- 执行的方法Runnablepredicate- 策略BiPredicate,返回true时表示重试- Returns:
- 当前对象
-
retryForPredicate
public static <T> RetryableTask<T> retryForPredicate(Supplier<T> sup, BiPredicate<T, Throwable> predicate) 重试根据指定的策略,没有返回值- Type Parameters:
T- 返回值类型- Parameters:
sup- 执行的方法Supplierpredicate- 策略BiPredicate,返回true时表示重试- Returns:
- 当前对象
-
maxAttempts
最大重试次数- Parameters:
maxAttempts- 次数- Returns:
- 当前对象
-
delay
重试间隔时间- Parameters:
delay- 间隔时间- Returns:
- 当前对象
-
get
获取结果- Returns:
- 返回包装了结果的
Optional对象
-
asyncExecute
异步执行重试方法- Returns:
- 返回一个异步对象
CompletableFuture
-
execute
同步执行重试方法- Returns:
- 当前对象
-