91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解spring boot使用@Retryable來進行重處理

發布時間:2020-09-02 02:18:51 來源:腳本之家 閱讀:339 作者:wangkang80 欄目:編程語言

前言

什么時候需要重處理?

在實際工作中,重處理是一個非常常見的場景,比如:發送消息失敗,調用遠程服務失敗,爭搶鎖失敗,等等,這些錯誤可能是因為網絡波動造成的,等待過后重處理就能成功.通常來說,會用try/catch,while循環之類的語法來進行重處理,但是這樣的做法缺乏統一性,并且不是很方便,要多寫很多代碼.然而spring-retry卻可以通過注解,在不入侵原有業務邏輯代碼的方式下,優雅的實現重處理功能.

思路

使用@Retryable和@Recover實現重處理,以及重處理失后的回調

實現

1.pom引用

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

2.應用啟動類開啟retry

....其他注解

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

3.在指定方法上標記@Retryable來開啟重試

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

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

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

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

結束

演示了單spring boot的應用的,在后續的cloud場景中,如:zuul,等組件,都會涉及到重處理,會在后續的章節中講解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蕉岭县| 怀柔区| 鸡泽县| 潮安县| 遵义县| 大同市| 积石山| 肇东市| 托克托县| 恭城| 泉州市| 盈江县| 怀宁县| 大渡口区| 元氏县| 光泽县| 郸城县| 防城港市| 土默特左旗| 根河市| 左权县| 万州区| 垫江县| 牡丹江市| 兴山县| 承德县| 襄垣县| 汉寿县| 吉木乃县| 阳新县| 富民县| 贵南县| 五寨县| 宜阳县| 平利县| 黎平县| 静乐县| 曲水县| 滕州市| 团风县| 金昌市|