guava-retry使用笔记
guava-retry使用笔记
xml依赖
<dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version> </dependency>
使用案例
重试3次,每次间隔3秒
/*** 重试3次,每次间隔3秒*/@Testvoid testGuavaRetry(){//定义请求实现Callable<Boolean> callable = ()->{//do something...log.info("call task... ...");throw new RuntimeException();};//定义重试机制Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder()//重试条件.retryIfResult(Objects::isNull)//异常重试源.retryIfExceptionOfType(IOException.class).retryIfRuntimeException().retryIfResult(res->res=false)//等待间隔时间.withWaitStrategy(WaitStrategies.fixedWait(3, TimeUnit.SECONDS))//设置最大重试次数.withStopStrategy(StopStrategies.stopAfterAttempt(3)).build();try {retryer.call(callable);}catch (RetryException | ExecutionException e){e.printStackTrace();}}
以指数递增的间隔等待重试
@Testvoid testGuavaRetry2(){Callable<Boolean> callable = ()->{//do something...log.info("call task... ...");throw new RuntimeException();};Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder().retryIfExceptionOfType(IOException.class).retryIfRuntimeException()//以指数递增的间隔等待,直到最多5分钟,5分钟后,每隔5分钟重试1次.withWaitStrategy(WaitStrategies.exponentialWait(100,5,TimeUnit.MINUTES))//设置永远重试.withStopStrategy(StopStrategies.neverStop()).build();try {retryer.call(callable);}catch (RetryException | ExecutionException e){e.printStackTrace();}}
失败后重试,按斐波那契回退间隔重试
@Testvoid testGuavaRetry3(){Callable<Boolean> callable = ()->{//do something...log.info("call task... ...");throw new RuntimeException();};Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder().retryIfExceptionOfType(IOException.class).retryIfRuntimeException()//失败后重试,按斐波那契回退间隔,直到2分钟,2分钟后,每隔2分钟重试1次.withWaitStrategy(WaitStrategies.fibonacciWait(100,2,TimeUnit.MINUTES))//设置永远重试.withStopStrategy(StopStrategies.neverStop()).build();try {retryer.call(callable);}catch (RetryException | ExecutionException e){e.printStackTrace();}}
相关文章:
guava-retry使用笔记
guava-retry使用笔记 xml依赖 <dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version> </dependency>使用案例 重试3次,每次间隔3秒 /*** 重试…...
P1226 【模板】快速幂 | 取余运算
【模板】快速幂 | 取余运算 题目描述 给你三个整数 a , b , p a,b,p a,b,p,求 a b m o d p a^b \bmod p abmodp。 输入格式 输入只有一行三个整数,分别代表 a , b , p a,b,p a,b,p。 输出格式 输出一行一个字符串 a^b mod ps,其中 …...
常用开源的弱口令检查审计工具
常用开源的弱口令检查审计工具 1、SNETCracker 1.1、超级弱口令检查工具 SNETCracker超级弱口令检查工具是一款开源的Windows平台的弱口令安全审计工具,支持批量多线程检查,可快速发现弱密码、弱口令账号,密码支持和用户名结合进行检查&am…...
云监控插件cloudmonitor安装保姆级教程
1、 需要isv把这些域名和ip加入到hosts中; 192.168.31.61 update.aegis.cloud.jiashan.gov.cn; 192.168.31.61 update.aegis.aliyun.com; 192.168.31.61 update2.aegis.cloud.jiashan.gov.cn; 192.168.31.61 update2.aegis.aliyun…...
借用和引用
文章目录 所有权引用和借用可变引用悬垂引用 所有权 Rust通过所有权来管理内存,最妙的是,这种检查只发生在编译期,因此对于程序运行期,不会有任何性能上的损失。 使用堆和栈的性能区别: 写入方面:入栈比在…...
WPF上位机9——Lambda和Linq
Lambda Linq 操作集合 使用类sql形式查询 Linq To SQL...
从0到1搭建uniapp
一、什么是uniapp UniApp是一款基于Vue.js框架的全端开发工具,可以实现同时开发多个平台(包括H5、小程序、APP等)应用的能力。使用UniApp,开发者只需要编写一份代码就可以快速地发布到多个平台,极大地提高了开发效率和…...
安全杂记 - Linux文本三剑客之awk
目录 1.什么是AWK2.正则表达式3.语法4.内置变量示例printf命令5.复现awk经典实例(1).插入几个新字段(2).格式化空白(3).筛选IPv4地址(4).筛选给定时间范围内的日志 1.什么是AWK awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。三者的功能都是处理文本&a…...
Android 开发者选项日志存储路径
android开发者选项中存在两个item是关于系统日志的。 1.日志记录器缓冲区大小 2.在设备上永久存储日志记录器数据 一个是用来设置缓冲区大小,一个是用来日志存储开关及过滤。 通过分析 system/core/logcat/logcatd.rc mkdir /data/misc/logd 0770 logd log 日志的…...
jupyter lab build失败,提示需要安装版本>=12.0.0的nodejs但其实已从官网安装18.17.0版本 的解决方法
出现的问题如题目所示,这个问题差点要把我搞死了。。。但还是在没有重装的情况下解决了😘。 问题来源 初衷是想安装lsp扩展,直接在jupyter lab网页界面的extensions中搜索lsp并点击install krassowski/jupyterlab-lsp,会提示需要…...
【set】个人练习-Leetcode-817. Linked List Components
题目链接:https://leetcode.cn/problems/linked-list-components/description/ 题目大意:给出一个vector<int> nums,其中有一些数字。再给出一个链表的头指针head,链表内的元素各不相同。如果链表中有某一段(长…...
Linux IPIP隧道连通两个局域网
拓扑结构 现有两台主机,它们具有两个网口分别接入到不同网络中。 主机A: eth0:处于 10.0.1.2/24 网段eth1: 处于192.168.1.100/24 网段 主机B: eth0:处于10.0.2.3/24 网段eth1: 处于192.168.2…...
华为QinQ技术的基本qinq和灵活qinq 2种配置案例
基本qinq配置: 运营商pe设备在收到同一个公司的ce发来的的包,统一打上同样的vlan ,如上图,同一个家公司两边统一打上vlan 2,等于在原内网vlan 10或20过来的包再统一打上vlan 2的标签,这样传输就不会和其它…...
python爬虫1:基础知识
python爬虫1:基础知识 前言 python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 目录结构 文章目录 python爬虫1:基础知识1. 基础认知1.1 什么是爬虫&…...
【FAQ】安防监控视频EasyCVR平台分发的FLV视频流在VLC中无法播放
众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上,视频监控…...
python爬虫2:requests库-原理
python爬虫2:requests库-原理 前言 python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 目录结构 文章目录 python爬虫2:requests库-原理1. 概述2. re…...
纹理贴图和渲染
纹理贴图 纹理映射(也就是纹理图或者叫做纹理贴图)是一种在计算机图形学中常用的技术,它可以将二维的图像(纹理)映射到三维物体的表面上,以增强视觉效果。“atlas”通常是指纹理图集,也就是将多…...
BLIP2
BLIP2的任务是基于已有的固定参数的图像encoder和语言大模型(LLM)搭建一个具有图像理解能力的图文模型,输入是图像和文本,输出是文本。 BLIP2基于Q-Former结构,如下图所示。Q-Former包含图像transformer和文本transfo…...
陀螺玩具跨境电商亚马逊CPC认证
陀螺指的是绕一个支点高速转动的刚体。陀螺是中国民间最早的娱乐工具之一.形状上半部分为圆形,下方尖锐。从前多用木头制成,现代多为塑料或铁制。玩时可用绳子缠绕,用力抽绳,使直立旋转。或利用发条的弹力旋转。传统古陀螺大致是木…...
TS学习02-接口
接口 ts原则之一就是对值所具有的结构进行类型检查。 结构的左右就是为了这些类型命名和代码定义契约 interface LabelValue {label: string } function point(label: LabelValue) {} let obj {label:标题,age: 18} point(obj)类型检查器不会去检查属性的顺序&a…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
