什么时候需要用到重试?
- 在实际中,有一些场景比如,通讯失败、获取锁失败、网络波动等原因造成程序异常,但是在重处理之后会成功。
以下是基于Spring Boot中的配置进行编写。
开发步骤
一、在启动类上(Application)添加@EnableRetry注解
二、在需要重试方法上添加@Retryable注解
@Retryable(value = { DataNotFoundException.class }, maxAttempts = 4, backoff = @Backoff(delay = 3000L, multiplier = 1))
public void testRetry() {
System.out.println("retry start");
throw new DataNotFoundException();
}
- value 指定失败重试的异常类型
- include:和value一样,默认空,当exclude也为空时,所有异常都重试
- exclude:指定异常不重试,默认空,当include也为空时,所有异常都重试
- maxAttempts: 重试次数,默认是3
- backoff:重试补偿机制,默认没有
@Backoff
- delay:指定延迟后重试
- multiplier:指定延迟的倍数,比如delay=5000l