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