我正在玩RxJava retryWhen运算符.在互联网上发现它很少,唯一值得一提的就是这个.这也无法探索我想要理解的各种用例.我还投入异步执行并使用后退重试以使其更加真实.
我的设置很简单:我有一个类ChuckNorrisJokesRepository从JSON文件返回随机数量的Chuck Norris笑话.我正在测试的课程ChuckNorrisJokesService如下所示.我感兴趣的用例如下:
注意:该项目可以在我的GitHub上找到.
ChuckNorrisJokesService.java:
@Slf4j
@Builder
public class ChuckNorrisJokesService {
@Getter
private final AtomicReference<Jokes> jokes = new AtomicReference<>(new Jokes());
private final Scheduler scheduler;
private final ChuckNorrisJokesRepository jokesRepository;
private final CountDownLatch latch;
private final int numRetries;
private final Map<String, List<String>> threads;
public static class ChuckNorrisJokesServiceBuilder {
public ChuckNorrisJokesService build() {
if (scheduler == null) {
scheduler = Schedulers.io();
}
if (jokesRepository == null) { …Run Code Online (Sandbox Code Playgroud)