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