springBoot重試控件

1.pom導入


<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>

2.在啓動類加入

@EnableRetry表示開啓重試規則

3.在需要做重試函數加入註解

@Retryable(value = {Exception.class}, maxAttempts = 20, backoff = @Backoff(delay = 5000, multiplier = 2))

註解說明
@Retryable:標註此註解的方法在發生異常時會進行重試
參數說明:value:拋出指定異常纔會重試
include:和value一樣,默認爲空,當exclude也爲空時,默認所以異常
exclude:指定不處理的異常
maxAttempts:最大重試次數,默認3次
backoff:重試等待策略,默認使用@Backoff,@Backoff的value默認爲1000L,multiplier(指定延遲倍數)
默認爲0,表示固定暫停1秒後進行重試,如果把multiplier設置爲2,則第一次重試爲1秒,第二次爲
2秒,第三次爲4秒
@Recover:用於@Retryable重試失敗後處理方法,此方法裏的異常一定要是@Retryable方法裏拋出的異常,否則不會調用
這個方法

4.在該類中加入重試到設定次數後仍然失敗後執行的函數

@Recover
public void recover(Exception e) {
    logger.error("基礎數據添加失敗" + e.getMessage());
    e.printStackTrace();
}

注意value = {Exception.class} 其中異常類型需要和public void recover(Exception e)中的異常類型一樣

這裏可以指定重試哪幾種異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章