什么是Guava-Retryer


什么是Guava-Retryer,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在日常开发中,我们经常会遇到需要调用外部服务和接口的场景。外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取。重试策略在服务治理方面也有很广泛的使用,通过定时检测,来查看服务是否存活(Active)。Guava Retrying是一个灵活方便的重试组件,包含了多种的重试策略,而且扩展起来非常容易。用作者的话来说:This is a small extension to Google’s Guava library to allow for the creation of configurable retrying strategies for an arbitrary function call, such as something that talks to a remote service with flaky uptime.使用Guava-retrying你可以自定义来执行重试,同时也可以监控每次重试的结果和行为,最重要的基于 Guava 风格的重试方式真的很方便。引入Guava-retry定义实现Callable接口的方法,以便Guava retryer能够调用简单三步就能使用Guava Retryer优雅的实现重调方法。
接下来对其进行详细说明:RetryerBuilder是一个factory创建者,可以定制设置重试源且可以支持多个重试源,可以配置重试次数或重试超时时间,以及可以配置等待时间间隔,创建重试者Retryer实例。RetryerBuilder的重试源支持Exception异常对象 和自定义断言对象,通过retryIfExceptionretryIfResult设置,同时支持多个且能兼容。retryIfException,抛出runtime异常、checked异常时都会重试,但是抛出error不会重试。retryIfRuntimeException只会在抛runtime异常的时候才重试,checked异常和error都不重试。retryIfExceptionOfType允许我们只在发生特定异常的时候才重试,比如NullPointerException和IllegalStateException`都属于runtime异常,也包括自定义的error如:当然我们还可以在只有出现指定的异常的时候才重试,如:或者通过Predicate实现retryIfResult可以指定你的Callable方法在返回值的时候进行重试,如运行结果如下:Attempt:一次执行任务;AttemptTimeLimiter:单次任务执行时间限制(如果单次任务执行超时,则终止执行当前任务);BlockStrategies:任务阻塞策略(通俗的讲就是当前任务执行完,下次任务还没开始这段时间做什么……),默认策略为:BlockStrategies.THREAD_SLEEP_STRATEGY也就是调用Thread.sleep(sleepTime);RetryException:重试异常;RetryListener:自定 香港云主机义重试监听器,可以用于异步记录错误日志;StopStrategy:停止重试策略,提供三种:StopAfterDelayStrategy:设定一个最长允许的执行时间;比如设定最长执行10s,无论任务执行次数,只要重试的时候超出了最长时间,则任务终止,并返回重试异常RetryExceptionNeverStopStrategy:不停止,用于需要一直轮训知道返回期望结果的情况;StopAfterAttemptStrategy:设定最大重试次数,如果超出最大重试次数则停止重试,并返回重试异常;WaitStrategy:等待时长策略(控制时间间隔),返回结果为下次执行时长:FixedWaitStrategy:固定等待时长策略;RandomWaitStrategy:随机等待时长策略(可以提供一个最小和最大时长,等待时长为其区间随机值)IncrementingWaitStrategy:递增等待时长策略(提供一个初始值和步长,等待时间随重试次数增加而增加)ExponentialWaitStrategy:指数等待时长策略;FibonacciWaitStrategy:Fibonacci 等待时长策略;ExceptionWaitStrategy:异常时长等待策略;CompositeWaitStrategy:复合时长等待策略;关于什么是Guava-Retryer问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。

相关推荐: 浏览器怎么设置主页

这篇文章给大家分享的是有关浏览器怎么设置主页的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.首先打开浏览器,在浏览器的右上角点击工具菜单中的Internet选项。2.在”Internet选项“窗口中切换至”常规“选项卡,然后在主页…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/12 15:47
下一篇 08/12 15:48

相关推荐