当前位置: 首页 > news >正文

网站建设市场需求大营业推广的方式有哪些

网站建设市场需求大,营业推广的方式有哪些,万网x3主机l系统放两个网站,石家庄网站建设 河北供求网在我们的日常开发中,经查会遇到调用接口失败的情况,这时候就需要通过一些方法来进行重试,比如通过while循环手动重复调用或,或者通过记录错误接口url和参数到数据库,然后手动调用接口,或者通过JDK/CGLib动态…

在我们的日常开发中,经查会遇到调用接口失败的情况,这时候就需要通过一些方法来进行重试,比如通过while循环手动重复调用或,或者通过记录错误接口url和参数到数据库,然后手动调用接口,或者通过JDK/CGLib动态代理的方式来进行重试,但是这种方法比较笨重,且对原有逻辑代码的入侵性比较大。

SpringRetry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。

1:添加pom依赖

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

2:主启动类开启@EnableRetry注解

/*** 主启动类* EnableCaching允许使用注解进行缓存* 添加注解@EnableRetry* * @author hua*/
@EnableRetry
@EnableCaching
@SpringBootApplication
@MapperScan(basePackages = "com.it.mapper")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

3:在重试所调用方法上添加@Retryable注解

@Service
@Slf4j
public class SpringRetryService {/*** 重试所调用方法** delay=2000L表示延迟2秒 multiplier=2表示两倍 即第一次重试2秒后,第二次重试4秒后,第三次重试8秒后* @return*/@Retryable(value = {RemoteAccessException.class}, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 2))public boolean call(Integer param) {return retryMethod(param);}/*** 超过最大重试次数或抛出没有指定重试的异常* @param e* @param param* @return*/@Recoverpublic boolean recover(Exception e, Integer param) {log.info("请求参数为: ", param);log.info("超过最大重试次数或抛出没有指定重试的异常, e = {} ", e.getMessage());return false;}public static boolean retryMethod(Integer param) {int i = new Random().nextInt(param);log.info("随机生成的数:{}", i);if (1 == i) {log.info("为1,返回true.");return true;} else if (i < 1) {log.info("小于1,抛出参数异常.");throw new IllegalArgumentException("参数异常");} else if (i > 1 && i < 10) {log.info("大于1,小于10,抛出参数异常.");return false;} else {//为其他log.info("大于10,抛出自定义异常.");throw new RemoteAccessException("大于10,抛出自定义异常");}}
}

Spring Retry 注解属性详解
1、@EnableRetry
作用于SpringbootApplication启动类,开启spring retry。
proxyTargetClass:默认值为false,设置为true时为CGLIB代理。
2、@Retryable 作用于需要进行重试的方法
value:指定处理的异常类,默认为空
include:指定处理的异常类,默认为空,当include和exclude为空时,默认所有异常
exclude:指定哪些异常不处理,默认空
maxAttempts:最大重试次数。默认3次
backoff: 重试补偿策略。默认使用@Backoff注解
3、@Backoff 作用于backoff中的补偿策略
delay:指定等待时间,没有设置的话默认为1000ms
maxDelay:最大重试时间,没有设置默认为3000ms
multiplier:下一次调用时间的乘数
random:随机等待时间,默认值为false
4、@Recover
用于对retry方法的异常抛出的特殊处理,可做熔断、降级、日志等操作。入参必须和retry对应方法所抛出的异常类型相同。

4:单元测试

@SpringBootTest
@Slf4j
public class SpringRetryServiceTest {@Autowiredprivate SpringRetryService springRetryService;@Testvoid contextLoads() {boolean result = springRetryService.call(100);log.info("方法返回结果为: {}", result);}
}

5:测试结果

在这里插入图片描述

6:源码下载

下载地址 springboot-cacheable 欢迎star哦~
在这里插入图片描述

参考资料
@Retryable注解,优雅的实现循环重试功能
SpringRetry(spring的重试机制)——只需一个注解
Spring 中的重试机制,简单、实用!

http://www.yayakq.cn/news/918081/

相关文章:

  • 电商网站建设的步骤本溪市城乡住房建设厅网站
  • 做金融看哪些网站有哪些皮肤自做头像的网站
  • 企业网站建立步骤wordpress浮动音乐
  • 物流行业网站模板51做网站广州
  • 单位网站建设意见建议怎么做网页连接数据库显示信息
  • 网站优化服务合同湖南纯手工seo电话
  • 山西省这房和城乡建设厅网站公众号的网站怎么做的
  • 做小程序和做网站哪个好建设外贸网站哪家好
  • 建设银行租房网站首页用word做网站首页
  • 维护网站计划书下载别人dede网站模版
  • 高端医疗网站开发西安app软件开发公司
  • 句容网站设计公司在线做网站流程
  • 网站百度v认证多语言商城网站开发
  • 公司网站建设合作协议浏览器网页打不开是什么原因
  • 免费动画模板素材网站网站策划的步骤
  • 信息网站大全大型网站建设服务公司
  • 王店镇建设中学网站重庆建设工程信息安全管理
  • 网站开发 东莞汕头专业的开发网站方案
  • 网站 设计工具网站开发 荣誉资质
  • 解决国外网站很慢天津模板建站定制网站
  • wordpress author template网站优化任务
  • 网站产品设计规范 模板网站优化心得
  • 创新的营销型网站资源下载网站建设
  • wordpress文章点击次数插件搜索优化师
  • 公司网站优化哪家好上海 有哪些做网站的公司
  • 淘宝网站小视频怎么做集宁做网站的公司
  • 做看电视电影的网站赚钱站长统计性宝app
  • 做网站的所有代码怎么注销网站备案
  • 建设银行的网站你打不开医院网站备案前置审批
  • 博客网站开发思维导图关于网站开发专业的ppt