欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot接口或方法進行失敗重試的實現(xiàn)方式

 更新時間:2024年07月23日 09:25:27   作者:會飛的青蛙~  
為了防止網(wǎng)絡(luò)抖動,影響我們核心接口或方法的成功率,通常我們會對核心方法進行失敗重試,如果我們自己通過for循環(huán)實現(xiàn),會使代碼顯得比較臃腫,所以本文給大家介紹了SpringBoot接口或方法進行失敗重試的實現(xiàn)方式,需要的朋友可以參考下

1. 前言

為了防止網(wǎng)絡(luò)抖動,影響我們核心接口或方法的成功率,通常我們會對核心方法進行失敗重試,如果我們自己通過for循環(huán)實現(xiàn),會使代碼顯得比較臃腫

2. Springboot提供了比較優(yōu)雅的實現(xiàn)方式

第一步:pom中引入spring-retry 因為retry是基于aop實現(xiàn)的 所以這里還需要引入spring aop

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

第二步:啟動類上開啟spiring-retry模塊

第三步:在需要失敗重試方法上加@Retryable注解

參數(shù)

value:可以設(shè)置對哪些異常進行失敗重試
maxAttempts:設(shè)置失敗重試的次數(shù)
backoff:設(shè)置重試等待策略
delay:失敗重試時間間隔
multiplier:設(shè)置延遲倍數(shù)

例如:我們delay設(shè)置的是1000 multipler設(shè)置的是2當(dāng)出現(xiàn)異常時,會間隔1秒,2秒,4秒進行重試

第四步:當(dāng)重試次數(shù)耗盡還拋出異常時,我們可以通過@Recover注解進行失敗回調(diào)

拿到我們的異常值和方法的入?yún)⑦M行額外的處理,

第五步:我們可以看到,重復(fù)調(diào)用了五次,最后進入了我們的失敗調(diào)用方法中

注意:

  1. @Recover方法的返回值,必須與@Retryable方法的返回值一致
  2. @Recover方法的第一個參數(shù)必須是Throwable類型的
  3. 回調(diào)方法與重試方法需要在同一個實現(xiàn)類里面
  4. 如果同一個類有多個回調(diào)方法,我們可以通過@Retryable注解的recover屬性,指定回調(diào)方法名稱
  5. spring-retry是基于aop實現(xiàn)的,靜態(tài)方法會導(dǎo)致aop失效 更多aop的失效場景請看下期

到此這篇關(guān)于SpringBoot接口或方法進行失敗重試的實現(xiàn)方式的文章就介紹到這了,更多相關(guān)SpringBoot接口進行失敗重試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中將String類型轉(zhuǎn)換為int類型的幾種常見方法

    Java中將String類型轉(zhuǎn)換為int類型的幾種常見方法

    在java中經(jīng)常會遇到需要對數(shù)據(jù)進行類型轉(zhuǎn)換的場景,這篇文章主要給大家介紹了關(guān)于Java中將String類型轉(zhuǎn)換為int類型的幾種常見方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Java使用Optional實現(xiàn)優(yōu)雅避免空指針異常

    Java使用Optional實現(xiàn)優(yōu)雅避免空指針異常

    空指針異常(NullPointerException)可以說是Java程序員最容易遇到的問題了。為了解決這個問題,Java?8?版本中推出了?Optional?類,本文就來講講如何使用Optional實現(xiàn)優(yōu)雅避免空指針異常吧
    2023-03-03
  • Java ArrayList使用總結(jié)

    Java ArrayList使用總結(jié)

    這篇文章主要介紹了Java ArrayList使用總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java RocksDB安裝與應(yīng)用

    Java RocksDB安裝與應(yīng)用

    本篇文章主要給大家介紹了JAVA中RocksDB的安裝與應(yīng)用,有需要到的朋友一起學(xué)習(xí)參考下。
    2017-12-12
  • springboot打包jar和war包的教程圖解

    springboot打包jar和war包的教程圖解

    這篇文章主要介紹了springboot打包jar和war包的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Springmvc模式上傳和下載與enctype對比

    Springmvc模式上傳和下載與enctype對比

    這篇文章主要介紹了Springmvc模式上傳和下載與enctype對比,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java調(diào)用windows系統(tǒng)的CMD命令并啟動新程序

    Java調(diào)用windows系統(tǒng)的CMD命令并啟動新程序

    本文教你如何使用java程序調(diào)用windows系統(tǒng)的CMD命令啟動新程序方法,需要的朋友可以參考下
    2023-05-05
  • springboot集成websocket的四種方式小結(jié)

    springboot集成websocket的四種方式小結(jié)

    本文主要介紹了springboot集成websocket的四種方式小結(jié),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java 細致圖解帶你分析漢諾塔

    Java 細致圖解帶你分析漢諾塔

    漢諾塔問題是一個經(jīng)典的問題。漢諾塔(Hanoi Tower),又稱河內(nèi)塔,源于印度一個古老傳說。本文將用Java求解這一問題,感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • java時間和字符串之間相互轉(zhuǎn)換幾種方法

    java時間和字符串之間相互轉(zhuǎn)換幾種方法

    這篇文章主要介紹了java時間和字符串之間相互轉(zhuǎn)換的幾種方法,還詳細解釋了DateTimeFormatter的三種解析模式,并比較了yyyy和uuuu在嚴格模式下的區(qū)別,需要的朋友可以參考下
    2025-03-03

最新評論