当我们重试到一定阶段的时候,需要终止重试过程,比如重试了n次或者重试了n秒等。

StopStrategies.stopAfterAttempt(n):在重试了n次后终止,这个实际中最常用。

StopStrategies.neverStop():从不终止,一直重试,没有什么实际用处。

StopStrategies.stopAfterDelay(10, TimeUnit.SECONDS):一直重试,指定时间过后终止。

guava-retrying提供了StopStrategy接口,我们可以实现自己想要的终止逻辑。

public interface StopStrategy {
    boolean shouldStop(Attempt var1);
}

7166a7ea-c36f-40e3-83b3-87bcc94783cb.png

下面我们使用自己实现的终止策略,重试1~11间的随机次数后终止。
e930cf52-5bfb-436a-9385-d7b95f805a2a.png


参考资料:

java重试工具库: 实现业务逻辑与重试逻辑的解耦_aitangyong的博客-CSDN博客

标签: none

评论已关闭