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使用相关推荐

  1. Google Guava Retry 优雅的重试方案

    Google Guava Retry 优雅的重试方案 前言 使用场景 什么场景不适合重试 了解幂等性 一.Guava Retry是什么? 与Spring retry比较 二.使用步骤 1.引入库 2. ...

  2. shell 执行失败重试_Smart Retry主要是用来进行方法重试

    Smart Retry Smart Retry主要是用来进行方法重试的.和Guava Retry.Spring Retry相比,Smart Retry最大的特点是异步重试,支持持久化,系统重启之后可以 ...

  3. Google guava 事件总线 EventBus 进程内消息队列

    Google guava 事件总线 EventBus 创建事件总线流程 码代码 引入依赖 一个简单的事件处理 监听者 创建事件生产者总线.注册事件监听者.发送事件 运行结果 扩展 多个事件监听者加De ...

  4. 使用Spring特性优雅书写业务代码

    作者:阿里巴巴淘系技术 链接:https://www.zhihu.com/question/60761181/answer/1737592739 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...

  5. 【转载】Java重试机制

    重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...

  6. Guava-retrying 重试机制

    文章目录 Guava-retrying 1. 主要相关类 1.1 Attemp 类 1.2 Retryer 类 1.3 RetryListener 2. WaitStrategies 重试等待策略 2 ...

  7. 常用的重试技术—如何优雅的重试(Spring-Retry)等

    背景 分布式环境下,重试是高可用技术中的一个部分,大家在调用RPC接口或者发送MQ时,针对可能会出现网络抖动请求超时情况采取一下重试操作,自己简单的编写重试大多不够优雅,而重试目前已有很多技术实现和框 ...

  8. 层层递进打造你的重试机制

    重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...

  9. 【java】【geoserver】java实现对geoserver图层及数据库的数据增删改

    geotools请参考:geotools实现插入,更新,查询 包结构 采用技术: dom4j,ThreadPoolTaskExecutor线程池,RestTemplate,guava retry,wf ...

最新文章

  1. 利用dom4j将实体类转换为对应的xml报文
  2. feign date类型时间错误问题
  3. hdu4908 中位数子串
  4. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)
  5. jQuery的事件方法
  6. Spicy Spring:动态创建自己的BeanDefinition
  7. Python中的TCP的客户端UDP学习----第一篇博客
  8. 开源Web应用程序防火墙 - ModSecurity
  9. tomcat8打开闪退_直接双击启动tomcat中的startup.bat闪退原因及解决方法
  10. centos7安装lnmp
  11. 【软件】强大的EPWING格式的日语词典
  12. 金笛JDMAIL打造公务员邮件系统
  13. 小白入门Python Web开发介绍(持续更新)
  14. 启动IDEA时出现error launching idea failed to create jvm的解决办法
  15. 电话测试压力软件,1-60T简单压力测试仪器/简单的测试压力工具
  16. H5打开QQ聊天窗口
  17. Python 之 列表推导式
  18. KV260开箱初体验
  19. 夜天之书 #62 诱导转向的伪开源战略
  20. 程序员真是惹不起,看不下去就动手!为了方便部署,居然亲自动手把这款SQL工具制作成容器

热门文章

  1. 用scala写一个基本五级流水线CPU
  2. 《VLSI仿真与验证》课程实验:TinyCore交叉编译验证思路
  3. 程序员三大世界观 如何看待HTML5
  4. Deep Reinforcement Learning Hands-on-2nd-edition 第一部分
  5. 【面经】宁波银行科技部测试岗一面面经
  6. 微信小程序设置wxss背景图片
  7. python将字符串写成二进制文件
  8. 券商的软件交易速度一般有多快?
  9. 渲染静态页面、get请求、post请求、express框架、路由、中间件
  10. Microsoft Office全家桶激活踩坑