最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring?retry方法調(diào)用失敗重試機(jī)制示例解析

 更新時(shí)間:2022年03月05日 16:26:38   作者:kl  
這篇文章主要為大家介紹了spring?retry方法調(diào)用失敗重試機(jī)制的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

前言

很多場(chǎng)景會(huì)用到重試的機(jī)制,比如:rpc服務(wù)調(diào)用失敗重試,文件上傳oss失敗重試,http接口調(diào)用失敗重試,支付回調(diào)失敗重試等等,一切因?yàn)榫W(wǎng)絡(luò),非邏輯性錯(cuò)誤等不確定因素引起的失敗都可以加上重試的機(jī)制,來(lái)增強(qiáng)系統(tǒng)的健壯性,博主也處理過(guò)文件上傳到第三方oss服務(wù)失敗增加重試的事例,在這之前不知道spring有個(gè)spring-retry項(xiàng)目,所以采用的是限制次數(shù)的遞歸調(diào)用的方式來(lái)解決的。

現(xiàn)在我們來(lái)看看spring boot項(xiàng)目中怎么使用spring-retry來(lái)處理是失敗重試的問(wèn)題。

1.導(dǎo)入依賴

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

ps:不要遺漏spring-boot-starter-aop包

2.注解的使用

/**
     * @Retryable注解參數(shù)說(shuō)明
     * maxAttempts 重試的次數(shù)
     * value 指定異常重試
     * exclude 排除某個(gè)異常不重試
     * 
     * @Backoff注解參數(shù)說(shuō)明
     * backoff 重試的間隔時(shí)間
     */
    @Retryable(maxAttempts=9,exclude = ArrayIndexOutOfBoundsException.class,value=Exception.class,backoff=@Backoff(delay = 1000))
    public String getResult(String name){
        System.out.println("嘗試調(diào)用第"+i+++"次");
        name= name.split(",")[1111];//異常測(cè)試
        if(i!=8){
            name= name.split(",")[1111];//異常測(cè)試
        }
        return name+":你好!";
    }

3.開啟重試

@SpringBootApplication
@EnableRetry
public class BootRetryApplication {
	public static void main(String[] args) {
		SpringApplication.run(BootRetryApplication.class, args);
	}
}

ps:別忘了@EnableRetry注解開啟重試

github項(xiàng)目地址:https://github.com/spring-projects/spring-retry

補(bǔ)充,手動(dòng)聲明式重試:

public static void main(String[] args) {
        ProxyFactory factory = new ProxyFactory(HelloService.class.getClassLoader());
        factory.setInterfaces(HelloService.class);
        factory.setTarget(new HelloService() {
            @Override
            public String say() {
                System.err.println("hello");
                if(1==1) throw new SecurityException();
                return "a";
            }
        });
        HelloService service = (HelloService) factory.getProxy();
        JdkRegexpMethodPointcut pointcut = new JdkRegexpMethodPointcut();
        pointcut.setPatterns(".*say.*");
        RetryOperationsInterceptor interceptor = new RetryOperationsInterceptor();
        ((Advised) service).addAdvisor(new DefaultPointcutAdvisor(pointcut, interceptor));
        service.say();
    }

以上就是spring retry方法調(diào)用失敗重試機(jī)制示例解析的詳細(xì)內(nèi)容,更多關(guān)于spring retry方法調(diào)用失敗重試機(jī)制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • kaptcha驗(yàn)證碼組件使用簡(jiǎn)介解析

    kaptcha驗(yàn)證碼組件使用簡(jiǎn)介解析

    這篇文章主要介紹了kaptcha驗(yàn)證碼組件使用簡(jiǎn)介解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • java下使用kaptcha生成驗(yàn)證碼

    java下使用kaptcha生成驗(yàn)證碼

    這篇文章主要介紹了java下使用kaptcha生成驗(yàn)證碼,感興趣的小伙伴們可以參考一下
    2015-12-12
  • feign服務(wù)端發(fā)現(xiàn)異??蛻舳颂幚淼姆椒ń榻B

    feign服務(wù)端發(fā)現(xiàn)異??蛻舳颂幚淼姆椒ń榻B

    這篇文章主要給大家介紹了關(guān)于feign服務(wù)端發(fā)現(xiàn)異??蛻舳颂幚淼姆椒?,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用feign具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java 十大排序算法之插入排序刨析

    Java 十大排序算法之插入排序刨析

    插入排序(InsertionSort),一般也被稱為直接插入排序。對(duì)于少量元素的排序,它是一個(gè)有效的算法。插入排序是一種最簡(jiǎn)單的排序方法,它的基本思想是將一個(gè)記錄插入到已經(jīng)排好序的有序表中,從而一個(gè)新的、記錄數(shù)增 1 的有序表
    2021-11-11
  • Java實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池簡(jiǎn)易教程

    Java實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池簡(jiǎn)易教程

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池簡(jiǎn)易教程,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Java設(shè)計(jì)模式之java外觀模式詳解

    Java設(shè)計(jì)模式之java外觀模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之外觀模式(Facade模式)介紹,外觀模式(Facade)的定義:為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,需要的朋友可以參考下
    2021-09-09
  • java數(shù)組中的異常類型整理

    java數(shù)組中的異常類型整理

    在本篇文章里小編給各位分享的是一篇關(guān)于java數(shù)組中的異常類型整理內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題

    java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題

    這篇文章主要介紹了java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 如何利用Retrofit+RxJava實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的異常處理

    如何利用Retrofit+RxJava實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的異常處理

    這篇文章主要介紹了如何利用Retrofit+RxJava實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的異常處理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Springboot 實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份還原的方法

    Springboot 實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份還原的方法

    這篇文章主要介紹了Springboot 實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份還原的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

普定县| 宝清县| 天峻县| 明水县| 巢湖市| 安徽省| 恭城| 漳浦县| 通海县| 镇安县| 新干县| 永胜县| 佛学| 古交市| 会泽县| 蕉岭县| 赤水市| 呼图壁县| 隆德县| 文登市| 湘潭市| 武山县| 丹寨县| 临潭县| 禹城市| 延边| 玉龙| 平罗县| 临沂市| 栖霞市| 苏尼特左旗| 商河县| 辰溪县| 犍为县| 东乌珠穆沁旗| 邵武市| 焉耆| 梁平县| 东莞市| 元氏县| 噶尔县|