精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

更好的 Java 重試框架 Sisyphus 配置的兩種方式介紹

開發 后端
這一節讓我們一起學習下 sisyphus 基于函數式的配置和注解式的配置。為了滿足更加方便的配置,Retryer 類提供了許多可以配置的信息。

這一節讓我們一起學習下 sisyphus 基于函數式的配置和注解式的配置。

函數式配置概覽

為了滿足更加方便的配置,Retryer 類提供了許多可以配置的信息。

默認配置

  1. /** 
  2.  * 默認配置測試 
  3.  */ 
  4. public void defaultConfigTest() { 
  5.     Retryer.<String>newInstance() 
  6.             .condition(RetryConditions.hasExceptionCause()) 
  7.             .retryWaitContext(RetryWaiter.<String>retryWait(NoRetryWait.class).context()) 
  8.             .maxAttempt(3) 
  9.             .listen(RetryListens.noListen()) 
  10.             .recover(Recovers.noRecover()) 
  11.             .callable(new Callable<String>() { 
  12.                 @Override 
  13.                 public String call() throws Exception { 
  14.                     System.out.println("called..."); 
  15.                     throw new RuntimeException(); 
  16.                 } 
  17.             }).retryCall(); 

 和下面的代碼是等價的:

  1. public void helloTest() { 
  2.     Retryer.<String>newInstance() 
  3.             .callable(new Callable<String>() { 
  4.                 @Override 
  5.                 public String call() throws Exception { 
  6.                     System.out.println("called..."); 
  7.                     throw new RuntimeException(); 
  8.                 } 
  9.             }).retryCall(); 

方法說明

condition

重試觸發的條件,可以指定多個條件。

默認為拋出異常。

retryWaitContext

重試等待的策略,可以指定多個。

默認為不做任何等待。

maxAttempt

指定最大重試次數,包括第一次執行。

默認值:3 次。

listen

指定重試的監聽實現,默認為不做監聽。

recover

當重試完成之后,依然滿足重試條件,則可以指定恢復的策略。

默認不做恢復。

callable

待重試執行的方法。

retryCall

觸發重試執行。

接口的詳細介紹

接口及其實現

所有的接口,都可以直接查看對應的子類實例。

用戶自定義

基于替換的靈活性,用戶可以實現接口,定義更符合自己業務的實現。

sisyphus 注解

配置具有很高的靈活性,但是對于開發人員的使用,就沒有注解那樣簡單靈活。

所以本框架也實現了基于注解的重試。

設計的規范

保證接口和注解二者的統一性。

maven 引入

  1. <dependency> 
  2.     <groupId>${project.groupId}</groupId> 
  3.     <artifactId>sisyphus-annotation</artifactId> 
  4.     <version>${project.version}</version> 
  5. </dependency> 

注解

核心注解主要有兩個。

Retry

用于指定重試的相關配置。

  1. /** 
  2.  * 重試注解 
  3.  * 1. 實際需要,只允許放在方法上。 
  4.  * 2. 如果放在接口上,是否所有的子類都生效?為了簡單明確,不提供這種實現。 
  5.  * 3. 保持注解和接口的一致性。{@link com.github.houbb.sisyphus.api.core.Retry} 接口 
  6.  * @author binbin.hou 
  7.  * @since 0.0.3 
  8.  */ 
  9. @Documented 
  10. @Inherited 
  11. @Target(ElementType.METHOD) 
  12. @Retention(RetentionPolicy.RUNTIME) 
  13. @RetryAble(DefaultRetryAbleHandler.class) 
  14. public @interface Retry { 
  15.  
  16.     /** 
  17.      * 重試類實現 
  18.      * @return 重試 
  19.      * @since 0.0.5 
  20.      */ 
  21.     Class<? extends com.github.houbb.sisyphus.api.core.Retry> retry() default DefaultRetry.class; 
  22.  
  23.     /** 
  24.      * 最大嘗試次數 
  25.      * 1. 包含方法第一次正常執行的次數 
  26.      * @return 次數 
  27.      */ 
  28.     int maxAttempt() default 3; 
  29.  
  30.     /** 
  31.      * 重試觸發的場景 
  32.      * @return 重試觸發的場景 
  33.      */ 
  34.     Class<? extends RetryCondition> condition() default ExceptionCauseRetryCondition.class; 
  35.  
  36.     /** 
  37.      * 監聽器 
  38.      * 1. 默認不進行監聽 
  39.      * @return 監聽器 
  40.      */ 
  41.     Class<? extends RetryListen> listen() default NoRetryListen.class; 
  42.  
  43.     /** 
  44.      * 恢復操作 
  45.      * 1. 默認不進行任何恢復操作 
  46.      * @return 恢復操作對應的類 
  47.      */ 
  48.     Class<? extends Recover> recover() default NoRecover.class; 
  49.  
  50.     /** 
  51.      * 等待策略 
  52.      * 1. 支持指定多個,如果不指定,則不進行任何等待, 
  53.      * @return 等待策略 
  54.      */ 
  55.     RetryWait[] waits() default {}; 
  56.  

RetryWait

用于指定重試的等待策略。

  1. package com.github.houbb.sisyphus.annotation.annotation; 
  2.  
  3. import com.github.houbb.sisyphus.annotation.annotation.metadata.RetryWaitAble; 
  4. import com.github.houbb.sisyphus.annotation.handler.impl.DefaultRetryWaitAbleHandler; 
  5. import com.github.houbb.sisyphus.core.constant.RetryWaitConst; 
  6. import com.github.houbb.sisyphus.core.support.wait.NoRetryWait; 
  7.  
  8. import java.lang.annotation.*; 
  9.  
  10. /** 
  11.  * 重試等待策略 
  12.  * 1. 為了對應重試策略,所有的內置注解應該實現當前的注解。 
  13.  * 2. 是否允許自定義注解? 
  14.  * 
  15.  * 當注解+對象同時出現的時候,視為組合。 
  16.  * 
  17.  * @author binbin.hou 
  18.  * @since 0.0.3 
  19.  */ 
  20. @Retention(RetentionPolicy.RUNTIME) 
  21. @Inherited 
  22. @Documented 
  23. @Target(ElementType.ANNOTATION_TYPE) 
  24. @RetryWaitAble(DefaultRetryWaitAbleHandler.class) 
  25. public @interface RetryWait { 
  26.  
  27.     /** 
  28.      * 默認值 
  29.      * 1. fixed 模式,則對應固定等待時間 
  30.      * 2. 遞增 
  31.      * @return 默認值 
  32.      */ 
  33.     long value() default RetryWaitConst.VALUE_MILLS; 
  34.  
  35.     /** 
  36.      * 最小值 
  37.      * @return 最小值 
  38.      */ 
  39.     long min() default RetryWaitConst.MIN_MILLS; 
  40.  
  41.     /** 
  42.      * 最大值 
  43.      * @return 最大值 
  44.      */ 
  45.     long max() default RetryWaitConst.MAX_MILLS; 
  46.  
  47.     /** 
  48.      * 影響因數 
  49.      * 1. 遞增重試,默認為 {@link RetryWaitConst#INCREASE_MILLS_FACTOR} 
  50.      * 2. 指數模式。默認為 {@link RetryWaitConst#MULTIPLY_FACTOR} 
  51.      * @return 影響因數 
  52.      */ 
  53.     double factor() default Double.MIN_VALUE; 
  54.  
  55.     /** 
  56.      * 指定重試的等待時間 class 信息 
  57.      * @return 重試等待時間 class 
  58.      */ 
  59.     Class<? extends com.github.houbb.sisyphus.api.support.wait.RetryWait> retryWait() default NoRetryWait.class; 
  60.  

注解的使用

定義好了注解,肯定要有注解的相關使用。

關于注解的使用,主要有兩種方式。

Proxy+CGLIB

基于代理模式和字節碼增強。

如果是項目中沒有使用 spring,直接使用這種方式比較方便。

Spring-AOP

可以和 spring 直接整合。

使用方式和 spring-retry 是一樣的。

這些內容將放在下一節進行詳細講解。

小結

靈活的配置才能更加符合實際生產使用中的各種需求。

一般實際使用推薦使用注解的配置方式,非常的簡單方便。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2015-05-06 10:05:22

javajava框架spring aop

2009-06-25 13:43:00

Buffalo AJA

2021-05-27 10:57:01

TCP定時器網絡協議

2011-04-02 09:48:38

深拷貝

2011-06-16 10:02:08

JAVA靜態載入

2009-12-07 13:42:24

WCF框架

2021-06-30 07:19:34

SpringBoot定時任務

2010-03-29 18:31:09

Nginx配置

2010-10-21 16:24:18

sql server升

2023-03-29 13:06:36

2010-08-06 09:38:11

Flex讀取XML

2010-03-16 15:23:32

java動態載入

2011-03-03 10:26:04

Pureftpd

2010-07-27 15:03:37

Flex ArrayC

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2024-09-20 11:32:28

.NET內存管理

2010-05-10 18:19:00

負載平衡技術

2010-08-03 13:27:04

FlexBuilder

2016-11-07 09:02:02

Malloc內存syscall
點贊
收藏

51CTO技術棧公眾號

亚洲欧美在线人成swag| 国产成人天天5g影院在线观看| 亚洲色图88| 精品国内片67194| 999香蕉视频| 成人免费网站在线观看视频| 99久久综合国产精品| 国产精品欧美一区二区| 免费在线观看亚洲| 国产99久久精品一区二区300| 欧美日韩高清一区| 国产精品国产亚洲精品看不卡| 美女做暖暖视频免费在线观看全部网址91| 久久精品国产亚洲高清剧情介绍| 久久久久久久久久久成人| 久久久视频6r| 超碰97久久国产精品牛牛| 色综合久久中文字幕综合网| 三级在线免费观看| 国产午夜在线观看| 成人av高清在线| 成人欧美一区二区三区在线| 国产伦精品一区二区三区视频网站| 91亚洲国产成人久久精品| 日韩高清免费观看| 午夜诱惑痒痒网| 夜鲁夜鲁夜鲁视频在线播放| 一区二区三区在线高清| 污视频在线免费观看一区二区三区| 丰满人妻一区二区三区无码av | 欧美成在线视频| 国精产品一区二区三区| 欧美一区自拍| 精品久久久久久久久久久院品网| 中文字幕成人免费视频| 日韩欧美精品电影| 欧美日韩亚洲系列| 欧美高清中文字幕| 七七成人影院| 亚洲欧美激情在线| 中文字幕一区二区三区乱码| www日韩tube| 欧美国产一区视频在线观看| 欧美激情第一页在线观看| 亚洲av无码一区二区乱子伦| 国产一区日韩二区欧美三区| 国产精品自拍网| 在线免费一区二区| 日韩国产成人精品| 国产精品久久久久久久久男 | 久久天堂精品| 日本久久精品视频| 亚洲午夜18毛片在线看| 国产精品试看| 2023亚洲男人天堂| 你懂的国产在线| 老司机一区二区三区| 2018中文字幕一区二区三区| 久久草视频在线| 99精品福利视频| 欧美一区二三区| 黄瓜视频在线免费观看| 久久激情婷婷| 国产日韩欧美在线看| 一级特黄aa大片| 国产一级精品在线| www.久久草| 神宫寺奈绪一区二区三区| 91网站在线播放| 欧美日韩精品免费在线观看视频| 国产69久久| 中文字幕一区三区| 国产高清不卡无码视频| 51漫画成人app入口| 一本一本久久a久久精品综合麻豆| 亚洲中文字幕无码不卡电影| se01亚洲视频| 91精品免费观看| 日批免费观看视频| 香蕉久久精品日日躁夜夜躁| 这里只有精品视频| 免费看一级一片| 美女久久网站| 91久久精品国产91性色| 亚洲精品一区二区三区新线路| 99国产精品99久久久久久| 日本一区二区三区视频在线观看| 日本不卡视频| 午夜精品影院在线观看| 色七七在线观看| 欧美高清hd| 亚洲精品中文字幕av| 午夜国产小视频| 1024日韩| 成人黄色短视频在线观看| 熟妇人妻系列aⅴ无码专区友真希| 久久久精品国产99久久精品芒果 | 国产精品伊人日日| 神马电影在线观看| 亚洲欧美一区二区三区极速播放 | 国产精品123| 欧美日韩大片一区二区三区| 26uuu亚洲电影在线观看| 欧美色欧美亚洲高清在线视频| 污网站在线免费| 无码日韩精品一区二区免费| 久久久成人av| 日批视频免费在线观看| 成人高清av在线| 在线综合视频网站| 在线日韩影院| 欧美xxxxxxxx| 九九热最新地址| 美女视频一区免费观看| 国产99在线免费| 日韩在线免费电影| 日韩欧美在线一区| 成人欧美精品一区二区| 天天射天天综合网| 日韩免费av片在线观看| 亚洲成熟女性毛茸茸| 中文字幕高清不卡| 午夜肉伦伦影院| 国产精品中文字幕制服诱惑| 日韩视频亚洲视频| 波多野结衣不卡| 99国产精品视频免费观看| 国产一级不卡视频| 欧美中文高清| 精品国偷自产在线视频99| 亚洲精品国产欧美在线观看| 99视频一区二区| www.xxx麻豆| 国产高清亚洲| 久久久国产精品x99av| 成人毛片一区二区三区| 久久网站最新地址| 人妻精品无码一区二区三区 | 久久99深爱久久99精品| 日韩亚洲欧美精品| 日韩欧美看国产| 亚洲人成毛片在线播放| 亚洲第一在线播放| 91亚洲精品久久久蜜桃网站| 2019日韩中文字幕mv| 波多野结衣一区二区三区免费视频| 久久综合免费视频影院| 国产精品国产一区二区三区四区| 国产精品理论在线观看| 日本人69视频| 在线中文字幕第一区| 亚洲综合日韩在线| 日本孕妇大胆孕交无码| 欧美不卡一区二区| 日韩乱码人妻无码中文字幕| av电影在线观看一区| 日韩人妻精品无码一区二区三区| 偷拍精品福利视频导航| 日本成人在线视频网址| 懂色一区二区三区| 欧美日韩精品免费观看视频| 成人黄色短视频| 国模无码大尺度一区二区三区| 黄黄视频在线观看| 国产精品色呦| 欧美怡春院一区二区三区| 国产一级在线| 欧美久久一二三四区| 欧美成人精品欧美一级| 成人h精品动漫一区二区三区| 国产肥臀一区二区福利视频| 一区二区美女| 国产日韩精品在线观看| 久久五月精品中文字幕| 日韩精品免费观看| 波多野结衣电车痴汉| 中文字幕综合网| 99精品一区二区三区无码吞精| 模特精品在线| 中文字幕在线观看一区二区三区| 日韩在线观看中文字幕| 2019中文在线观看| 在线免费黄色| 精品sm在线观看| 精品国产www| 亚洲一区中文在线| 国产又大又粗又爽的毛片| 国产精品中文有码| 青青在线视频观看| 91精品福利| 青青草成人网| 99精品国产一区二区三区2021 | 精品三级av| 国产精品国模在线| 香蕉久久aⅴ一区二区三区| 精品亚洲aⅴ在线观看| 国产免费不卡av| 色综合天天综合狠狠| 亚洲色婷婷一区二区三区| 91麻豆免费在线观看| 91精品无人成人www| 亚洲久久一区二区| 一区二区91美女张开腿让人桶| 国产精伦一区二区三区| 成人黄色短视频在线观看| 欧美magnet| 欧美国产视频日韩| 免费的黄网站在线观看| 亚洲九九九在线观看| 亚洲AV无码精品国产| 91麻豆精品国产91久久久久| 欧美亚洲另类小说| 天天做天天摸天天爽国产一区 | 熟女人妻在线视频| 国产在线不卡一区| 爱情岛论坛成人| 日韩视频二区| 国产精品视频网站在线观看| 91久久电影| 污视频在线免费观看一区二区三区| 玖玖玖免费嫩草在线影院一区| 91在线免费网站| www.久久| 国产精品va在线| 亚洲精品永久免费视频| 午夜精品美女自拍福到在线| 亚洲淫性视频| 欧美成人精品激情在线观看| 97电影在线| 在线精品播放av| 国产视频第一区| 亚洲欧美制服综合另类| 天天av综合网| 日韩大陆欧美高清视频区| 亚洲精品视频网| 精品国产一区a| 亚洲精品一级片| 精品久久久久久久人人人人传媒| 成人高潮片免费视频| 欧美一区二区三区播放老司机| 国产精品久久久久久免费免熟| 欧美日韩三级一区| 亚洲中文无码av在线| 欧美日韩在线不卡| 亚洲一区中文字幕在线| 欧美日韩国产综合一区二区三区| 波多野结衣网站| 欧美在线制服丝袜| 中文字幕在线2018| 欧美老肥妇做.爰bbww| 91亚洲精品国偷拍自产在线观看 | 一区二区三区欧美日韩| 欧美激情一区二区视频| 亚洲福利视频导航| 日韩欧美a级片| 欧美日韩精品二区| 少妇太紧太爽又黄又硬又爽| 日韩欧美在线免费观看| 亚洲av无码不卡| 欧美日韩国产首页| 99热这里只有精品1| 精品少妇一区二区三区日产乱码| 蜜桃久久一区二区三区| 亚洲精品电影在线| 国产在线观看高清视频| 日韩在线免费视频| 久色国产在线| 日韩av免费网站| 成人午夜sm精品久久久久久久| 国产欧美日韩高清| 国产在线视频欧美一区| 国产精品免费在线播放| 亚洲桃色综合影院| 亚洲精品成人自拍| 欧美日韩国产探花| 欧美韩国日本在线| 狠狠狠色丁香婷婷综合久久五月| 四虎国产精品免费| 成人av资源在线观看| 国内精品卡一卡二卡三| 亚洲日本在线天堂| 青青青国产在线 | 亚洲成人你懂的| 久久久黄色大片| 91麻豆精品国产| 天堂在线中文资源| 色婷婷综合成人| 国产一二三在线| 国产欧美日韩中文字幕| 国内精品免费| 亚洲激情啪啪| 亚洲视频成人| 国产乱码一区二区三区四区| 99re成人精品视频| 波多野结衣在线网址| 婷婷综合五月天| a级片在线视频| 国产亚洲一区二区精品| 青青在线视频| 国产免费一区二区三区在线观看 | 中文在线观看免费网站| 欧美熟乱第一页| 天天操天天干天天| 久久亚洲精品一区| 99re久久| 另类欧美小说| 亚洲欧美亚洲| 手机免费av片| 久久久精品日韩欧美| 国产对白videos麻豆高潮| 欧美军同video69gay| 欧美美乳在线| 91av在线精品| 99ri日韩精品视频| 麻豆中文字幕在线观看| 日本 国产 欧美色综合| 污污内射在线观看一区二区少妇 | 久久婷婷五月综合色国产香蕉| 国产一区三区三区| 手机av在线不卡| 在线观看日韩一区| 日本一二三区在线视频| 久久久亚洲国产| 一区二区三区四区视频免费观看| 亚洲一卡二卡区| 日本 国产 欧美色综合| 欧美另类z0zx974| 色综合久久中文字幕| 日韩成人黄色| 69久久夜色精品国产69乱青草| 视频精品二区| 激情视频小说图片| 久久成人综合网| jizzjizzjizz国产| 欧美日韩国产一级二级| 国产在线中文字幕| 国产成人精品免高潮费视频| 亚洲警察之高压线| 国产精品免费入口| 91浏览器在线视频| 天堂网av手机版| 日韩av在线免播放器| 一区二区精品伦理...| 久久久影院一区二区三区| 一区二区日本视频| 国产ts丝袜人妖系列视频| 色综合久久久久| 国产区视频在线播放| 国产精品美女久久久免费| 色综合天天综合网中文字幕| 日本一二区免费| 亚洲欧美日韩在线| 午夜免费福利视频| 国内精品一区二区三区四区| 久久久久久久久久久久久久久久久久久久| 97免费视频观看| 99久久精品国产导航| 91黑人精品一区二区三区| 最新国产精品亚洲| 国产一区二区视频在线看| 国产精品videossex国产高清| 成人18视频在线播放| 久久久久女人精品毛片九一| 一区二区三区 在线观看视| 国产成人福利夜色影视| 国产人妻互换一区二区| 北条麻妃一区二区三区| 久久国产视频精品| 日韩中文字幕在线观看| ady日本映画久久精品一区二区| 国产一区二区网| 中文久久乱码一区二区| 精品人妻无码一区二区| 57pao精品| 香蕉国产精品| 免费a v网站| 欧美三级乱人伦电影| 在线三级电影| 久久大片网站| 久久99久久99小草精品免视看| 免看一级a毛片一片成人不卡| 亚洲黄色www网站| 成人a在线观看高清电影| 日韩精品手机在线观看| 久久亚洲私人国产精品va媚药| 国产又粗又猛又爽又黄的视频一| 久久露脸国产精品| 成人久久一区| 成人做爰www看视频软件 | 99视频国产精品免费观看a| 91国内精品久久| 亚洲国产日韩欧美在线| wwwwww日本| 日韩视频123| 91亚洲视频| 国产主播自拍av| 日韩理论片中文av| 免费理论片在线观看播放老| 97av影视网在线观看| 欧美aaa在线|