java番石榴常用操作学习(代码片段)

author author     2022-12-22     683

关键词:

//在实际业务中,有非常多场景需要我们进行重试操作,编码中通过采用各种回调的方式来抽象重试的实现,但都不是那么理想

//主要接口及策略介绍:
Attempt:一次执行任务;
AttemptTimeLimiter:单次任务执行时间限制(如果单次任务执行超时,则终止执行当前任务);
BlockStrategies:任务阻塞策略(通俗的讲就是当前任务执行完,下次任务还没开始这段时间做什么……),默认策略为:BlockStrategies.THREAD_SLEEP_STRATEGY 也就是调用 Thread.sleep(sleepTime);
RetryException:重试异常;
RetryListener:自定义重试监听器,可以用于异步记录错误日志;
//StopStrategy:停止重试策略,提供三种:
StopAfterDelayStrategy :设定一个最长允许的执行时间;比如设定最长执行10s,无论任务执行次数,只要重试的时候超出了最长时间,则任务终止,并返回重试异常RetryException;
NeverStopStrategy :不停止,用于需要一直轮训直到返回期望结果的情况;
StopAfterAttemptStrategy :设定最大重试次数,如果超出最大重试次数则停止重试,并返回重试异常;

//WaitStrategy:等待时长策略(控制时间间隔),返回结果为下次执行时长:
FixedWaitStrategy:固定等待时长策略;
RandomWaitStrategy:随机等待时长策略(可以提供一个最小和最大时长,等待时长为其区间随机值)
IncrementingWaitStrategy:递增等待时长策略(提供一个初始值和步长,等待时间随重试次数增加而增加)
ExponentialWaitStrategy:指数等待时长策略;
FibonacciWaitStrategy :Fibonacci 等待时长策略;
ExceptionWaitStrategy :异常时长等待策略;
CompositeWaitStrategy :复合时长等待策略;




//Strings 提供了空指针、空字符串的判断和互换方法
Strings.isNullOrEmpty("");//true
Strings.nullToEmpty(null);//""
Strings.nullToEmpty("a");//"a"
Strings.emptyToNull("");//null
Strings.emptyToNull("a");//"a"

//Strings 还提供了常见的字符串前后拼接同一个字符直到达到某个长度,或者重复拼接自身 n 次
Strings.padStart("7", 3, '0');//"007"
Strings.padStart("2010", 3, '0');//"2010"
Strings.padEnd("4.", 5, '0');//"4.000"
Strings.padEnd("2010", 3, '!');//"2010"
Strings.repeat("hey", 3);//"heyheyhey"

//Strings 的最后一组功能是查找两个字符串的公共前缀、后缀。
Strings.commonPrefix("aaab", "aac");//"aa"
Strings.commonSuffix("aaac", "aac");//"aac"

//Splitter 的 API 和 Joiner 类似,使用 Splitter#on 指定分隔符,使用 Splitter#split 完成拆分
Splitter.on(' ').split("1 2 3");//["1", "2", "3"]
//Splitter 还支持使用正则表达式来描述分隔符。
Splitter.onPattern("\\s+").split("1 \t 2 3");//["1", "2", "3"]
//Splitter 还支持根据长度来拆分字符串。
Splitter.fixedLength(3).split("1 2 3");//["1 2", " 3"]
//与 Joiner.MapJoiner 相对,Splitter.MapSplitter 用来拆分被拼接了的 Map 对象,返回 Map<String, String>
Splitter.on("#").withKeyValueSeparator(":").split("1:2#3:4");//"1":"2", "3":"4"

//拼接字符串
StringBuilder sb = new StringBuilder("result:");
Joiner.on(":").appendTo(sb,"1","2","3");
System.out.println(sb);//result:1:2:3

//过滤空值
Joiner.on(' ').skipNulls().join(1, null, 3);//1 3

//空值替换
Joiner.on(' ').useForNull("None").join(1, null, 3);//1 None 3

elasticsearch学习笔记,常用操作,docker安装(代码片段)

docker安装dockerpullelasticsearch安装某个版本需要在dockerhub查看查看版本:https://hub.docker.com/_/elasticsearch?tab=tagsdockerpullelasticsearch:7.6.2dockerimages查看镜像启动容器:dockerrun--namees2-eES_JAVA_O 查看详情

pyhton基础学习《元组字典的常用操作》(代码片段)

一、元组(1)元组的创建tu=(11,22,33,)或者tu=tupel((11,22,33))(2)元组常用的操作defcount(self,value):#realsignatureunknown;restoredfrom__doc__"""T.count(value)->integer--returnnumberofoccurrencesofvalue"""#计数defindex(se 查看详情

学习笔记hadoop——hadoop基础操作(代码片段)

...志分析1.2、Safemode进入方式二、Hadoop集群基本信息三、HDFS常用Shell操作3.1、HDFS文件系统3.2、常用Shell命令-appendToFile3.3、常用Shell命令-cat3.4、常用Shell命令-copyFromLocal|put3.5、常用Shell命令-cp3.6、常用Shell命令-du3.7、常用S 查看详情

pyhton基础学习《列表的常用操作》(代码片段)

1.创建列表name_list=[1,2,3,] 或 name_list=list([1,2,3])2.列表的基本操作classlist(object):#列表的类defappend(self,p_object):#realsignatureunknown;restoredfrom__doc__#追加:将对象附加到列表结尾"""L.append(object)->None 查看详情

text番石榴串(代码片段)

查看详情

java示例代码_禁用番石榴缓存

java示例代码_禁用番石榴缓存 查看详情

java示例代码_用番石榴做这个

java示例代码_用番石榴做这个 查看详情

学习笔记hadoop——hadoop基础操作——hdfs常用shell操作(代码片段)

三、HDFS常用Shell操作3.1、HDFS文件系统HDFSShell指的是可以使用类似shell的命令来直接和Hadoop分布式文件系统(HDFS)进行交互。使用命令:bin/hadoopfs<args>bin/hdfsdfs<args>参数中的路径使用scheme://authority/path的格式... 查看详情

学习笔记hadoop——hadoop基础操作——mapreduce常用shell操作mapreduce任务管理(代码片段)

四、MapReduce常用Shell操作4.1、MapReduce常用ShellMapReduceShell此处指的是可以使用类似shell的命令来直接和MapReduce任务进行交互(这里不严格区分MapReduceshell及Yarnshell)。提交任务命令:yarnjar<jar>[mainClass]args...查看及修... 查看详情

java示例代码_使用番石榴连接字符串

java示例代码_使用番石榴连接字符串 查看详情

java示例代码_分类番石榴多重地图?(键=日期)

java示例代码_分类番石榴多重地图?(键=日期) 查看详情

java示例代码_番石榴:如何结合过滤和转换

java示例代码_番石榴:如何结合过滤和转换 查看详情

java集合学习笔记:arraylist(代码片段)

Java集合学习笔记:ArrayList简介UML常用方法增删改查迭代内部类静态内部类自动扩容逻辑Java7Java8扩容-核心代码移除-核心代码使用建议参考资料简介ArrayList是List接口的大小可变数组的实现。实现了所有可选列表操作,并允... 查看详情

java集合学习笔记:arraylist(代码片段)

Java集合学习笔记:ArrayList简介UML常用方法增删改查迭代内部类静态内部类自动扩容逻辑Java7Java8扩容-核心代码移除-核心代码使用建议参考资料简介ArrayList是List接口的大小可变数组的实现。实现了所有可选列表操作,并允... 查看详情

java示例代码_使用番石榴多重映射的替换值方法

java示例代码_使用番石榴多重映射的替换值方法 查看详情

java示例代码_在Java中,如何使用Google';这是番石榴。托斯特林

java示例代码_在Java中,如何使用Google';这是番石榴。托斯特林 查看详情

mysql学习笔记——常用基础操作(代码片段)

登录与退出登录MySQL需要使用mysql命令,该命令有许多的选项参数可供使用:-V:显示MySQL的版本信息(大写)-u:用户名-p:该用户的密码-h:想要登录的MySQL服务的运行主机IP-P:想要登录的MySQL... 查看详情

java示例代码_有效地将番石榴系列和树丛相交

java示例代码_有效地将番石榴系列和树丛相交 查看详情