ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring的重试策略、发生异常会自动重新调用

2019-05-18 18:39:09  阅读:229  来源: 互联网

标签:调用 String spring springframework 重试 retry new org import


测试类以及测试代码、复制即可

package com.cms.util;

import javax.swing.plaf.synth.SynthSpinnerUI;

import org.springframework.retry.RecoveryCallback;
import org.springframework.retry.RetryCallback;
import org.springframework.retry.RetryContext;
import org.springframework.retry.backoff.ExponentialBackOffPolicy;
import org.springframework.retry.policy.SimpleRetryPolicy;
import org.springframework.retry.support.RetryTemplate;

public class TestUtils {
    public static void main(String[] args) throws Exception {
        new TestUtils().sendMsg("", null, null);
    }
       public  void sendMsg(String msg,String phone,String[] arr) throws Exception{
               
               RetryTemplate template = new RetryTemplate();
               // 策略
               SimpleRetryPolicy policy = new SimpleRetryPolicy();
               policy.setMaxAttempts(20);
               template.setRetryPolicy(policy);
             
               ExponentialBackOffPolicy   exponen = new ExponentialBackOffPolicy();
               exponen.setInitialInterval(1000);
               exponen.setMultiplier(2);
               template.setBackOffPolicy(exponen);
               String result = template.execute(
                       new RetryCallback<String, Exception>() {
                           @Override
                           public String doWithRetry(RetryContext arg0) throws Exception {
                               try {
                                   if(1==1){
                                       System.out.println(123);
                                       throw new Exception();                                       
                                   }
                            } catch (Exception e) {
                                // TODO Auto-generated catch block
                                throw new Exception();
                            }
                              return "";
                           }
                       }
                       ,
                       new RecoveryCallback<String>() {
                           @Override
                           public String recover(RetryContext context) {
                               return "recovery callback";
                           }
                       }
               );
           }
}

以下是maven依赖

           <dependency>
                <groupId>org.springframework.retry</groupId>
                <artifactId>spring-retry</artifactId>
                <version>1.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                  <version>1.5.4</version>
        </dependency>

 

标签:调用,String,spring,springframework,重试,retry,new,org,import
来源: https://www.cnblogs.com/qq376324789/p/10886657.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有