1、添加重试依赖
<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
2、启动类或者配置类中添加注解:
@EnableRetry
3、添加重试注解
将注解@Retryable,添加到对应方法上:
例子:
@Retryable(value = Exception.class,maxAttempts = 3,backoff = @Backoff(value = 1000))
public FullText getTextByPdfKey(String fileObjKeyName){
log.info("getTextByPdfKey:{}",fileObjKeyName);
try{
List<Block> blocks = getBlocks(fileObjKeyName);
if (!CollectionUtils.isEmpty(blocks)){
FullText textByBlocks = getTextByBlocks(blocks.stream().sorted(Comparator.comparing(Block::page)).collect(Collectors.groupingBy(Block::page)));
textByBlocks.setBlocks(blocks);
return textByBlocks;
}
}catch (Exception e){
log.error("getTextByPdfKey is error!",e);
throw new RuntimeException("getTextByPdfKey is error!");
}
return new FullText();
}
注:value = Exception.class:针对哪种异常重试
maxAttempts = 3 :重试次数
backoff = @Backoff(value = 1000) :重试间隔时间毫秒