天天看點

Spring-retry 優雅地重試機制Spring-retry 優雅地重試機制

Spring-retry 優雅地重試機制

如何有什麼問題出錯需要重試,不用繁瑣的寫for循環去手動重試,可以使用Spring-retry優雅地實作.

第一步:導入spring-retry
build.gradle 中添加代碼:
dependencies {
    compile('org.springframework.retry:spring-retry:1.2.2.RELEASE')
}
           
第二步:在類上添加注解 @EnableRetry
@EnableRetry
public class  needRetryService {
       public void needRetryFunction {
           if (condition){
           new SomeException("some exception occur!");
       }
}
           
第三步:在需要重試的方法上添加注解 @Retryable
@EnableRetry
public class  needRetryService {

      @Retryable(include = SomeException.class, maxAttempts = 3)
       public void needRetryFunction {
           if (condition){
          throws new SomeException("some exception occur!");
       }
}
           

到這裡就完成重試功能了,解釋一下工作過程:

當調用needRetryService中的needRetryFunction時,如果抛出了異常SomeException,就會被重試,預設重試3次。

但是如果三次都失敗了,想要捕獲異常,給使用者良好的使用者體驗,就需要第四步。

第四步:添加重試失敗之後處理的方法
@Recover
    public void exceptionHandler(SomeException e) {
        log.error("some exception " + e.getMessage());
    }
           

重試第三次仍然抛出異常,就會執行exceptionHandler方法,并輸出異常資訊。

繼續閱讀