Flux.interval не стремится не ленивый - PullRequest
1 голос
/ 11 февраля 2020

Publisher генерирует значение может быть классифицировано как ленивый и нетерпеливый, как Mono.just и Flux.fromIterable стремятся, а операции http ленивы, так как они генерируют значение только при вызове block или subscirbe. Но я случайно обнаружил, что на основе этого деления Flux.interval не принадлежит ни:

@Test
public void interval() throws InterruptedException {
    Flux<Long> delay = Flux.interval(Duration.ofSeconds(5)).log(); // t0
    TimeUnit.SECONDS.sleep(2); // t0+2
    Flux<Long> longFlux = Flux.just(0, 0, 0).zipWith(delay, (a, b) -> a + b).log(); // t0+2+5
    StepVerifier.create(longFlux).expectNext(0l,1l,2l).verifyComplete();
}

Если оно стремится, то должно быть t0 + 5, если оно ленивое, оно должно ждать subscribe или block вызывается.

...