zoukankan      html  css  js  c++  java
  • spring的重试策略、发生异常会自动重新调用

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

    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>
  • 相关阅读:
    Linux下用命令格式化U盘
    ABAP
    [Java 并发] Java并发编程实践 思维导图
    html和css实现一级菜单和二级菜单学习笔记
    小贝_mysql建表以及列属性
    Android.mk具体解释
    Maven之——坐标和依赖(上)
    让 Nginx 支持 WAF 防护功能web防火墙
    EZHTTP首页、文档和下载
    http://www.sshguard.net/
  • 原文地址:https://www.cnblogs.com/qq376324789/p/10886657.html
Copyright © 2011-2022 走看看