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

詳解spring boot使用@Retryable來進(jìn)行重處理

 更新時(shí)間:2017年06月02日 15:47:06   作者:wangkang80  
本篇文章主要介紹了詳解spring boot使用@Retryable來進(jìn)行重處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

什么時(shí)候需要重處理?

在實(shí)際工作中,重處理是一個(gè)非常常見的場(chǎng)景,比如:發(fā)送消息失敗,調(diào)用遠(yuǎn)程服務(wù)失敗,爭(zhēng)搶鎖失敗,等等,這些錯(cuò)誤可能是因?yàn)榫W(wǎng)絡(luò)波動(dòng)造成的,等待過后重處理就能成功.通常來說,會(huì)用try/catch,while循環(huán)之類的語法來進(jìn)行重處理,但是這樣的做法缺乏統(tǒng)一性,并且不是很方便,要多寫很多代碼.然而spring-retry卻可以通過注解,在不入侵原有業(yè)務(wù)邏輯代碼的方式下,優(yōu)雅的實(shí)現(xiàn)重處理功能.

思路

使用@Retryable和@Recover實(shí)現(xiàn)重處理,以及重處理失后的回調(diào)

實(shí)現(xiàn)

1.pom引用

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

2.應(yīng)用啟動(dòng)類開啟retry

....其他注解

@EnableRetry
public class BaseApplication {
  .......
}

3.在指定方法上標(biāo)記@Retryable來開啟重試

 @Retryable(value={A異常.class,B異常.class},
       maxAttempts=重試次數(shù),
       backoff = @Backoff(value = 每次重試延遲毫秒數(shù)))
 public Integer retry() {
  LOGGER.info("測(cè)試retry");
  final int a = 5;
  int num = new SecureRandom().nextInt();
  if (num % a == 0) {
   return num;
  }
  throw new RetryException("重試失敗");
 }

4.在指定方法上標(biāo)記@Recover來開啟重試失敗后調(diào)用的方法(注意,需跟重處理方法在同一個(gè)類中)

 @Recover
 public void recover(A異常 e) {
  // ... do something
 }

 @Recover
 public void recover(B異常 e) {
  // ... do something
 }

結(jié)束

演示了單spring boot的應(yīng)用的,在后續(xù)的cloud場(chǎng)景中,如:zuul,等組件,都會(huì)涉及到重處理,會(huì)在后續(xù)的章節(jié)中講解

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中比較器Comparator和Comparable的區(qū)別

    Java中比較器Comparator和Comparable的區(qū)別

    這篇文章主要介紹了Java中比較器Comparator和Comparable的區(qū)別,我們?cè)谑褂?Collections.sort()對(duì)鏈表進(jìn)行排序時(shí),常常需要根據(jù)不同情況自定義排序規(guī)則,今天我們來看看比較器之間的區(qū)別,需要的朋友可以參考下
    2023-08-08
  • jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器

    jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器

    這篇文章主要介紹了jackson在springboot中的使用方式-自定義參數(shù)轉(zhuǎn)換器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實(shí)現(xiàn)方法

    Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實(shí)現(xiàn)方法

    spring cloud用上了配置中心,就一個(gè)boostrap.yml,本文就來介紹一下Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2024-03-03
  • Java實(shí)現(xiàn)將PPT轉(zhuǎn)為OFD過程詳解

    Java實(shí)現(xiàn)將PPT轉(zhuǎn)為OFD過程詳解

    本文將通過Java后端程序代碼展示如何實(shí)現(xiàn)將PPT幻燈片轉(zhuǎn)成OFD格式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下
    2022-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷

    Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷

    樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點(diǎn))按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會(huì)的族譜和各種社會(huì)組織機(jī)構(gòu)都可用樹形象表示
    2022-01-01
  • springboot中PostMapping正常接收json參數(shù)后返回404問題

    springboot中PostMapping正常接收json參數(shù)后返回404問題

    這篇文章主要介紹了springboot中PostMapping正常接收json參數(shù)后返回404問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • SpringBoot的屬性賦值@Value的用法說明

    SpringBoot的屬性賦值@Value的用法說明

    這篇文章主要介紹了SpringBoot的屬性賦值@Value的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot配置圖片訪問的虛擬路徑

    SpringBoot配置圖片訪問的虛擬路徑

    大家好,本篇文章主要講的是SpringBoot配置圖片訪問的虛擬路徑,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • SpringBoot之ApplicationRunner解析(spring容器啟動(dòng)完成執(zhí)行的類)

    SpringBoot之ApplicationRunner解析(spring容器啟動(dòng)完成執(zhí)行的類)

    這篇文章主要介紹了SpringBoot之ApplicationRunner解析(spring容器啟動(dòng)完成執(zhí)行的類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • JavaFX實(shí)現(xiàn)界面跳轉(zhuǎn)

    JavaFX實(shí)現(xiàn)界面跳轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了JavaFX實(shí)現(xiàn)界面跳轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論