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

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

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

1. 前言

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

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

第一步:pom中引入spring-retry 因?yàn)閞etry是基于aop實(shí)現(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>

第二步:?jiǎn)?dòng)類(lèi)上開(kāi)啟spiring-retry模塊

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

參數(shù)

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

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

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

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

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

注意:

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

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

相關(guān)文章

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

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

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

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

    空指針異常(NullPointerException)可以說(shuō)是Java程序員最容易遇到的問(wèn)題了。為了解決這個(gè)問(wèn)題,Java?8?版本中推出了?Optional?類(lèi),本文就來(lái)講講如何使用Optional實(shí)現(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包的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Springmvc模式上傳和下載與enctype對(duì)比

    Springmvc模式上傳和下載與enctype對(duì)比

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

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

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

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

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

    Java 細(xì)致圖解帶你分析漢諾塔

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

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

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

最新評(píng)論