guava-retrying,重试工具使用
来源:互联网 发布:js 实现文档预览功能 编辑:程序博客网 时间:2024/05/29 11:04
最常用的就是在方法抛出异常的时候重试,比如网络故障导致的IOException。java异常系统分为:runtime异常,checked异常和error,其中ERROR程序处理不了,不需要管;不过作为学习,我们可以测试下error的情况。下面这段代码我们定义了3个任务:分别抛出runtime异常、checked异常、error。
先上一段实例代码:
/** * guava retry * 结果返回false 重试:固定等待时长为 300 ms,最多尝试 3 次 */ static Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder() .retryIfExceptionOfType(RestClientException.class) .retryIfResult(aBoolean -> Objects.equals(aBoolean, false)) .withWaitStrategy(WaitStrategies.fixedWait(300, TimeUnit.MILLISECONDS)) .withStopStrategy(StopStrategies.stopAfterAttempt(3)) .build();调用:
for (final String mobile : Mobiles) { final SmsLog smsLog = new SmsLog(mobile, content); Callable<Boolean> sendTask = () -> send(mobile, content); try { retryer.call(sendTask); } catch (ExecutionException | RetryException e) { logger.error("重试三次,发送短信失败"); } }
private Boolean send(String mobile, String content) { boolean success = true; ..... return success; }
阅读全文
0 0
- guava-retrying,重试工具使用
- guava-retrying重试工具库: 什么时候重试
- guava-retrying重试工具库: Retryer.call()使用注意事项
- guava-retrying重试工具库: 什么时候终止
- guava-retrying重试工具库: RetryListener
- guava-retrying重试工具库: AttemptTimeLimiter
- guava-retrying重试工具库: 隔多长时间重试
- guava-retrying重试工具库: 阻塞策略BlockStrategy
- 【Guava】基于guava的重试组件Guava-Retryer
- Google Guava 工具集简介-使用
- Google Guava 工具集__2__Cache 缓存使用
- guava使用
- Guava使用笔记系列之集合工具的高…
- Guava使用笔记系列之集合工具的高…
- Guava使用笔记系列之集合工具的高…
- guava之Strings和Johner工具类使用示例
- Google guava工具类的介绍和使用
- google工具类guava
- MongoDB权威指南--阅读笔记(三)
- Valid Number
- 2 寄存器
- Laravel5.3使用auth登录验证
- 解决错误: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
- guava-retrying,重试工具使用
- SpringBoot Controller找不到视图路径
- KVM 虚拟化
- Idea 使用SBT创建Scala项目中 No 'scala-library*.jar' in Scala compiler classpath的问题解决
- [并查集] HDU 1878
- 图像的算术运算和逻辑运算
- squid 代理服务器
- C#准备知识
- <<跟着老男孩学linux运维>>第一章总结