相关疑难解决方法(0)

RxJava重试当奇怪的行为

我正在玩RxJava retryWhen运算符.在互联网上发现它很少,唯一值得一提的就是这个.这也无法探索我想要理解的各种用例.我还投入异步执行并使用后退重试以使其更加真实.

我的设置很简单:我有一个类ChuckNorrisJokesRepository从JSON文件返回随机数量的Chuck Norris笑话.我正在测试的课程ChuckNorrisJokesService如下所示.我感兴趣的用例如下:

  1. 第一次尝试成功(没有重试)
  2. 1次重试后失败
  3. 尝试重试3次但在第2次成功因此不会重试第3次
  4. 成功第三次重试

注意:该项目可以在我的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)

java reactive-programming rx-java

5
推荐指数
1
解决办法
291
查看次数

标签 统计

java ×1

reactive-programming ×1

rx-java ×1