1 Star 0 Fork 45

2T / retrieval

forked from spjich / retrieval 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
三种模式.md 1.09 KB
一键复制 编辑 原始数据 按行查看 历史
spjich 提交于 2019-01-04 10:04 . 异常结构修改+test

三种模式

在两种形式的基础上又分别支持以下三种执行模式

proceed模式

调用线程与重试线程相同

单线程运行(注:proceed模式下不支持timeout设置)

抛出的异常封装在ProceedException

new RetryBuilder().build().proceed(() -> "success");

sync模式

调用线程与重试线程不同

异步阻塞模式,重试+超时时间设定

抛出ExecutionException ,InterruptedException,TimeoutException

业务具体异常包装在ExecutionException中的ProceedException

new RetryBuilder().retry(10).timeout(5000).build().sync(() -> "success");

重试10次,且5s后无论成功与否都会返回结果

async模式

建议结合callback形式使用 调用线程与重试线程不同 异步非阻塞模式,重试+超时时间设定+自定义线程池

new RetryBuilder().retry(10).delay(1000).timeout(5000).pool(Executors.newSingleThreadExecutor()).build().async((round, nanos) -> "success");

调用线程非阻塞,重试会在线程池中继续运行,到达超时时间后自动停止

Java
1
https://gitee.com/haito/retrieval.git
git@gitee.com:haito/retrieval.git
haito
retrieval
retrieval
master

搜索帮助