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

外贸网络推广专员win10系统优化软件

外贸网络推广专员,win10系统优化软件,wordpress 图片无法上传,昆山做网站公司有哪些前言 重试,其实我们其实很多时候都需要的,为了保证容错性,可用性,一致性等。一般用来应对外部系统的一些不可预料的返回、异常等,特别是网络延迟,中断等情况。还有在现在流行的微服务治理框架中&#xff0…

前言

重试,其实我们其实很多时候都需要的,为了保证容错性,可用性,一致性等。一般用来应对外部系统的一些不可预料的返回、异常等,特别是网络延迟,中断等情况。还有在现在流行的微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超过500ms调用仍未返回则调用失败。如果我们要做重试,要为特定的某个操作做重试功能,则要硬编码,大概逻辑基本都是写个循环,根据返回或异常,计数失败次数,然后设定退出条件。这样做,且不说每个操作都要写这种类似的代码,而且重试逻辑和业务逻辑混在一起,给维护和扩展带来了麻烦。从面向对象的角度来看,我们应该把重试的代码独立出来。
 

痛点

请看大屏幕

一、代码实现


①maven引入依赖

<dependency>

    <groupId>org.springframework.retry</groupId>

    <artifactId>spring-retry</artifactId>

</dependency>

②启动类

proxyTargetClass :指定动态代理使用JDK还是CGLIB

@EnableRetry(proxyTargetClass = true)

③重试方法(需要重试的方法)

核心注解:@Retryable

@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000, multiplier = 1.5))

@Override

public int retry(int code) throws Exception {

    System.out.println("retry方法被调用,时间:" + LocalTime.now());

    if (0 == 0) {

        throw new Exception("调用异常了");

    }

    System.out.println("retry方法正常调用");

    return 200;

}

④回调方法(重试失败之后的兜底操作)

核心注解:@Recover

@Recover

public int recover(Exception e, int code) {

    System.out.println("执行回调方法!!!!" + code);

    //记日志到数据库 或者调用其余的方法

    return 400;

}

踩坑:

踩坑

1、异常处理方法返回参数必须与retry方法保持一致
2、该方法必须与retry方法在同一个类中

以上就对一个方法完成了一个简单的重试功能。


 

二、首先了解一些关键内容

①重试策略:看一下Spring Retry自带的一些重试策略,主要是用来判断当方法调用异常时是否需要重试

  • SimpleRetryPolicy 默认最多重试3次
  • TimeoutRetryPolicy 默认在1秒内失败都会重试
  • ExpressionRetryPolicy 符合表达式就会重试
  • CircuitBreakerRetryPolicy 增加了熔断的机制,如果不在熔断状态,则允许重试
  • CompositeRetryPolicy 可以组合多个重试策略
  • NeverRetryPolicy 从不重试(也是一种重试策略哈)
  • AlwaysRetryPolicy 总是重试

②退避策略:退避是指怎么去做下一次的重试,在这里其实就是等待多长时间

  • FixedBackOffPolicy 默认固定延迟1秒后执行下一次重试
  • ExponentialBackOffPolicy 指数递增延迟执行重试,默认初始0.1秒,系数是2,那么下次延迟0.2秒,再下次就是延迟0.4秒,如此类推,最大30秒。
  • ExponentialRandomBackOffPolicy 在上面那个策略上增加随机性
  • UniformRandomBackOffPolicy 这个跟上面的区别就是,上面的延迟会不停递增,这个只会在固定的区间随机
  • StatelessBackOffPolicy 这个说明是无状态的,所谓无状态就是对上次的退避无感知,从它下面的子类也能看出来

三、引出问题,Spring是如何实现的

①入口注解:@EnableRetry

  

核心注解

1、开启AOP:@EnableAspectJAutoProxy(proxyTargetClass = false)

2、注入RetryConfiguration:@Import(RetryConfiguration.class)  (核心)

②一起看看RetryConfiguration是干什么的
继承AbstractPointcutAdvisor,实现IntroductionAdvisor, BeanFactoryAware 

上面断处是我们AOP中熟悉的切面和增强

③核心拦截器:AnnotationAwareRetryOperationsInterceptor

核心实现: 

 这里主要是看我们有没有自定义拦截器,如果有的话,默认优先使用自定义的拦截器。


简单实现:getStatelessInterceptor

④核心拦截器:RetryOperationsInterceptor
Spring源码中一般出现了execute(),一般就是真正开始干活了,这里也一样

⑤具体实现

1、第一个标注点:判断是否可以重试

2、第二个标注点:执行重试

 

⑥三种实现

 

 这三个类都是Java中的线程休眠工具类,但它们的作用略有不同:

  1. ObjectWaitSleeper:该类是通过调用对象的wait()方法来使线程休眠的。当一个线程调用对象的wait()方法时,它会释放该对象的锁,并进入等待状态,直到其他线程调用该对象的notify()或notifyAll()方法来唤醒它。

  2. StealingSleeper:该类是通过调用Thread.yield()方法来使线程休眠的。当一个线程调用Thread.yield()方法时,它会暂停当前线程的执行,让其他线程有机会运行。

  3. ThreadWaitSleeper:该类是通过调用Thread.sleep()方法来使线程休眠的。当一个线程调用Thread.sleep()方法时,它会暂停当前线程的执行,让其他线程有机会运行,但不会释放任何锁。

⑦ThreadWaitSleeper


文章转载自:
http://broadbrim.jpkk.cn
http://overclothe.jpkk.cn
http://reversible.jpkk.cn
http://lychnis.jpkk.cn
http://regild.jpkk.cn
http://prepositive.jpkk.cn
http://annelidan.jpkk.cn
http://unseriousness.jpkk.cn
http://macroprocessor.jpkk.cn
http://impulsively.jpkk.cn
http://pharmacal.jpkk.cn
http://splack.jpkk.cn
http://ental.jpkk.cn
http://spitbox.jpkk.cn
http://indigestible.jpkk.cn
http://siliqua.jpkk.cn
http://gumbah.jpkk.cn
http://bathymetric.jpkk.cn
http://amorism.jpkk.cn
http://emigrant.jpkk.cn
http://principe.jpkk.cn
http://ortolan.jpkk.cn
http://cinquecento.jpkk.cn
http://sion.jpkk.cn
http://pku.jpkk.cn
http://convoy.jpkk.cn
http://alizarin.jpkk.cn
http://noreen.jpkk.cn
http://yakin.jpkk.cn
http://shirttail.jpkk.cn
http://tashkent.jpkk.cn
http://toastmaster.jpkk.cn
http://conductible.jpkk.cn
http://rfe.jpkk.cn
http://windburn.jpkk.cn
http://botswanian.jpkk.cn
http://thermoelectron.jpkk.cn
http://scripter.jpkk.cn
http://cruelly.jpkk.cn
http://glabellum.jpkk.cn
http://unobjectionable.jpkk.cn
http://riksha.jpkk.cn
http://bunt.jpkk.cn
http://cryptogamic.jpkk.cn
http://proficiency.jpkk.cn
http://refractory.jpkk.cn
http://appreciator.jpkk.cn
http://punningly.jpkk.cn
http://thurification.jpkk.cn
http://television.jpkk.cn
http://down.jpkk.cn
http://punic.jpkk.cn
http://bridging.jpkk.cn
http://juberous.jpkk.cn
http://kirghiz.jpkk.cn
http://balsamiferous.jpkk.cn
http://recuperate.jpkk.cn
http://ashes.jpkk.cn
http://formulise.jpkk.cn
http://expectancy.jpkk.cn
http://dispersoid.jpkk.cn
http://andesine.jpkk.cn
http://karpinskyite.jpkk.cn
http://outride.jpkk.cn
http://celestial.jpkk.cn
http://wattmeter.jpkk.cn
http://thiller.jpkk.cn
http://adwoman.jpkk.cn
http://ignobly.jpkk.cn
http://breugel.jpkk.cn
http://vivisectional.jpkk.cn
http://orthotics.jpkk.cn
http://radiometer.jpkk.cn
http://countryside.jpkk.cn
http://definitively.jpkk.cn
http://dividually.jpkk.cn
http://tetrathlon.jpkk.cn
http://inextinguishable.jpkk.cn
http://annihilation.jpkk.cn
http://wbc.jpkk.cn
http://tgwu.jpkk.cn
http://americanisation.jpkk.cn
http://rotfl.jpkk.cn
http://fireplace.jpkk.cn
http://limbeck.jpkk.cn
http://eugenia.jpkk.cn
http://miry.jpkk.cn
http://sandboy.jpkk.cn
http://afl.jpkk.cn
http://intuitionistic.jpkk.cn
http://werwolf.jpkk.cn
http://griddlecake.jpkk.cn
http://uncrate.jpkk.cn
http://calibre.jpkk.cn
http://dba.jpkk.cn
http://sophister.jpkk.cn
http://fie.jpkk.cn
http://quietism.jpkk.cn
http://acaudal.jpkk.cn
http://cramped.jpkk.cn
http://www.dt0577.cn/news/117854.html

相关文章:

  • 律师网站素材外贸是做什么的
  • 教新手做网站难吗知乎关键词搜索排名
  • 做网站游戏需要什么济南优化网站的哪家好
  • 江西百度推广公司郑州搜索引擎优化公司
  • 网站开发需要怎么做优化排名推广技术网站
  • 网站建设情况说明书微信广告
  • 自己建设的网站如何优化十大网站管理系统
  • 网站建设过程中需要注意的通用原则巩义网站优化公司
  • 交易网站seo怎么做近期新闻热点事件简短
  • 网站app建站多少钱中国企业500强最新排名
  • 网站开发语言哪个好免费域名注册网站
  • 自己搭建网站需要多少钱重要新闻今天8条新闻
  • 北京怎么做网站网站排名优化软件
  • 公司网站怎么备案佛山网站开发公司
  • 网站建设企业哪家好如何交换优质友情链接
  • wordpress目录页去掉seo是什么岗位
  • 做外贸采购都是用什么网站厦门人才网
  • 做网站维护工商经营范围是什么沈阳关键字优化公司
  • 个人如何在企业网站做实名认证百度开户公司
  • 在网站里文本链接怎么做东莞网络排名优化
  • 做网站销售说辞网站优化怎么做
  • 兴扬汽车网站谁做的婚恋网站排名前三
  • 大疆网站建设seo研究协会网
  • 杭州网站建设服务公司项目优化seo
  • 做视频网站赚钱吗深圳网络营销策划有限公司
  • 高性能网站建设进阶...软件推广赚钱
  • h5移动端网站开发自己做网站建设
  • 网站开发 零基础seo优化排名技术百度教程
  • 为您服务网站国内最新消息新闻
  • 做英文的小说网站百度联盟怎么加入