RT ,需求,重试 5 次,不行抛异常,自己的写法是:
while (!某一个条件 ready || retryTimes < 5) {
Thread.sleep(1000);
retryTimes++;
}
if (retryTimes == 5) {
throw new xxxException();
}
不考虑通知机制的前提下,有啥好的写法,目前这个写法太搓了
1
ql562482472 2022 年 12 月 30 日
写个框架 比如
class RetryExecutor{ public retry(Consumer task, int retryTimes,Function onsuccess,Function onfailure) } |
2
jdOY 2022 年 12 月 30 日 spring retry
|
3
itechify PRO <dependency>
<groupId>com.github.rholder</groupId> <artifactId>guava-retrying</artifactId> <version>2.0.0</version> </dependency> |
4
kaneg 2022 年 12 月 30 日
resilience4j-retry
|
5
wolfie 2022 年 12 月 30 日
Guava Retry
|
6
z960112559 2022 年 12 月 30 日
spring-retry
|
7
vayci 2022 年 12 月 30 日
借楼提个问:spring-retry 基于内存实现,程序重启后重试中没结束的逻辑就丢失了。为实现重新程序还能接着重试,我自己手动持久化到 redis ,然后启动时使用 RetryTemplate 又去创建重试。但是感觉这个做法有点蠢,有没有比较优雅的实现方式或者现成的中间件可以实现
|
8
monkeyzsf 2022 年 12 月 30 日
RxJava:retryWhen ?
|
9
itning 2022 年 12 月 30 日
|
11
vitoliu 2022 年 12 月 30 日 via iPhone
Future.callback guava retry 都很优雅。还可以结合 eventbus 做 fallback listener
|