小编Jur*_*ník的帖子

并发度为1的skipUntil和flatMap挂在Reactor中

skipUntil当使用和flatMap(fn, concurrency)运算符时,我在 Reactor (v. 3.4.2) 中经历了奇怪的行为concurrency=1。管道挂了。

为了证明我的意思,这里有一个简短的例子,它按我的预期工作:

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

它将234和打印5到单独的行。但是,如果我添加等于运算符的并发参数,1flatMap执行将挂起:

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

我不知道我是否错过了某些东西,或者skipUntil在它跳过第一个项目后,它不会从上游请求下一个项目,或者存在一些错误的行为。第二个例子有效吗?

java flatmap project-reactor

5
推荐指数
0
解决办法
278
查看次数

标签 统计

flatmap ×1

java ×1

project-reactor ×1