Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
301 views
in Technique[技术] by (71.8m points)

java - skipUntil and flatMap with concurrency 1 hangs in Reactor

I have experienced a strange behavior in Reactor (v. 3.4.2) when using skipUntil and flatMap(fn, concurrency) operators with concurrency=1. The pipeline hangs.

To demonstrate what I mean here is a short example that works as I would expect:

Flux.range(1, 5)
    .skipUntil(v -> v > 1)
    .flatMap(v -> Mono.just(v))
    .doOnNext(System.out::println)
    .blockLast();

It prints 2, 3, 4 and 5 to a separate line. However, if I add a concurrency argument equal to 1 to the flatMap operator then the execution hangs:

Flux.range(1, 5)
    .skipUntil(v -> v > 1)
    .flatMap(v -> Mono.just(v), 1)
    .doOnNext(System.out::println)
    .blockLast();

I don't know if I missed something or there is some erroneous behavior of skipUntil that after it skips the first item it does not request next from the upstream. Is the second example valid?

question from:https://stackoverflow.com/questions/65927400/skipuntil-and-flatmap-with-concurrency-1-hangs-in-reactor

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...