工作原理 Retry 基本重试: 输出: 重试一次成功: 重试两次成功: 重试三次均失败: 可以看到,再超过重试次数的时候, 若程序还是异常,则抛出异常。 RetryForever 成功前一直重试: 输出: 将 这个分支去掉, 任务将变为不可能成功,会发现一直输出重试。 WaitAndRetry 程 ...
分类:
其他好文 时间:
2019-04-26 12:57:00
阅读次数:
119
Asp.Net WebAPI配置接口返回数据类型为Json格式 一、默认情况下WebApi 对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式 例如:从浏览器直接输入地址,或者默认的XMLRequest,或者AngularJs的get请求等。 对于有循环引用的也会抛出异常““ObjectC ...
有这样一个需求,当调用某个方法抛出异常,比如通过 HttpClient 调用远程接口时由于网络原因报 TimeOut 异常;或者所请求的接口返回类似于“处理中”这样的信息,需要重复去查结果时,我们希望当前方法能够在这种特定的情况下,重复执行,如果达到了我们的期望,则不重复执行。而且,我们希望能够控制 ...
分类:
编程语言 时间:
2019-04-26 00:22:44
阅读次数:
132
我们在service中写上两个方法,一个是加钱,一个是减钱。都添加上事务。 场景A: 测试: 没有任何问题 下面修改一下。 场景B: 测试: 这也没有任何问题。 下面给减钱的抛出异常: 场景C: 结果:两个都回滚了。 可能有的小伙伴要说了,updateAdd() 抛出了异常在updateLessen ...
分类:
其他好文 时间:
2019-04-25 16:07:03
阅读次数:
126
ArrayBlockingQueue的实现方式?
ArrayBlockingQueue是否需要扩容?
ArrayBlockingQueue有什么缺点?
分类:
编程语言 时间:
2019-04-21 23:05:07
阅读次数:
287
一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中, ...
分类:
编程语言 时间:
2019-04-18 17:00:28
阅读次数:
159
app('redis')->connection('default')->throttle('key000') // 每60秒,只能有10个资源被获取,在3秒内获取不到锁抛出异常 ->allow(10)->every(60)->block(3) ->then(function () { ... ...
分类:
其他好文 时间:
2019-04-17 16:38:09
阅读次数:
169
app('redis')->connection('default')->funnel('key000') // 每个资源最大锁定10秒自动过期,只有60个资源(并发),在3秒内获取不到锁抛出异常 ->releaseAfter(10)->limit(60)->block(3) ->then(func... ...
分类:
其他好文 时间:
2019-04-17 16:35:11
阅读次数:
122
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。 平常应用中方式很多 1. 数据库自增长序列或字段 2. UUID 3.uuid的变 ...
分类:
其他好文 时间:
2019-04-16 00:52:44
阅读次数:
127
接上一小节彻底征服 Spring AOP 之 理论篇 Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体的例子吧.下面的几个例子是我在工作中所遇见的比 ...
分类:
编程语言 时间:
2019-04-15 00:27:22
阅读次数:
105