guava retry使用
git地址:https://github.com/rholder/guava-retrying
maven依赖:
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version>
</dependency>
<dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version>
</dependency>
代码实现:
Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder().retryIfException().retryIfExceptionOfType(RuntimeException.class) //该异常抛出,retry.retryIfResult(Predicates.equalTo(false)) //结果符合某些条件,retry.withWaitStrategy(WaitStrategies.fixedWait(5, TimeUnit.SECONDS)) //retry的间隔.withStopStrategy(StopStrategies.stopAfterAttempt(3)) //最大尝试此时.withRetryListener(new JobRetryListener<>()) //监听器.build();try {retryer.call(() -> {System.out.println("retry");return false;});} catch (ExecutionException e) {}
监听类
@Slf4j
public class JobRetryListener<Boolean> implements RetryListener {@Overridepublic <V> void onRetry(Attempt<V> attempt) {log.info("retry times: {}", attempt.getAttemptNumber());log.info("delay time: {}", attempt.getDelaySinceFirstAttempt());if (attempt.hasException()) {log.info("causeBy: {}", attempt.getExceptionCause().toString());} else {// 正常返回时的结果log.info(",result: {}", attempt.getResult());}}
}
参考:
https://www.jianshu.com/p/a289dde63043
guava retry使用相关推荐
- Google Guava Retry 优雅的重试方案
Google Guava Retry 优雅的重试方案 前言 使用场景 什么场景不适合重试 了解幂等性 一.Guava Retry是什么? 与Spring retry比较 二.使用步骤 1.引入库 2. ...
- shell 执行失败重试_Smart Retry主要是用来进行方法重试
Smart Retry Smart Retry主要是用来进行方法重试的.和Guava Retry.Spring Retry相比,Smart Retry最大的特点是异步重试,支持持久化,系统重启之后可以 ...
- Google guava 事件总线 EventBus 进程内消息队列
Google guava 事件总线 EventBus 创建事件总线流程 码代码 引入依赖 一个简单的事件处理 监听者 创建事件生产者总线.注册事件监听者.发送事件 运行结果 扩展 多个事件监听者加De ...
- 使用Spring特性优雅书写业务代码
作者:阿里巴巴淘系技术 链接:https://www.zhihu.com/question/60761181/answer/1737592739 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...
- 【转载】Java重试机制
重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...
- Guava-retrying 重试机制
文章目录 Guava-retrying 1. 主要相关类 1.1 Attemp 类 1.2 Retryer 类 1.3 RetryListener 2. WaitStrategies 重试等待策略 2 ...
- 常用的重试技术—如何优雅的重试(Spring-Retry)等
背景 分布式环境下,重试是高可用技术中的一个部分,大家在调用RPC接口或者发送MQ时,针对可能会出现网络抖动请求超时情况采取一下重试操作,自己简单的编写重试大多不够优雅,而重试目前已有很多技术实现和框 ...
- 层层递进打造你的重试机制
重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...
- 【java】【geoserver】java实现对geoserver图层及数据库的数据增删改
geotools请参考:geotools实现插入,更新,查询 包结构 采用技术: dom4j,ThreadPoolTaskExecutor线程池,RestTemplate,guava retry,wf ...
最新文章
- 利用dom4j将实体类转换为对应的xml报文
- feign date类型时间错误问题
- hdu4908 中位数子串
- AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)
- jQuery的事件方法
- Spicy Spring:动态创建自己的BeanDefinition
- Python中的TCP的客户端UDP学习----第一篇博客
- 开源Web应用程序防火墙 - ModSecurity
- tomcat8打开闪退_直接双击启动tomcat中的startup.bat闪退原因及解决方法
- centos7安装lnmp
- 【软件】强大的EPWING格式的日语词典
- 金笛JDMAIL打造公务员邮件系统
- 小白入门Python Web开发介绍(持续更新)
- 启动IDEA时出现error launching idea failed to create jvm的解决办法
- 电话测试压力软件,1-60T简单压力测试仪器/简单的测试压力工具
- H5打开QQ聊天窗口
- Python 之 列表推导式
- KV260开箱初体验
- 夜天之书 #62 诱导转向的伪开源战略
- 程序员真是惹不起,看不下去就动手!为了方便部署,居然亲自动手把这款SQL工具制作成容器