【发布时间】:2021-03-12 18:49:38
【问题描述】:
使用 Reactor,我有一个 Mono 和一个 Flux,Mono 在一个频道上进行一些轮询,Flux 在这个频道上发布。在测试中,我希望Flux 仅在Mono 有效轮询时才开始发布数据。由于Mono 上的投票不会在订阅后立即开始,所以我在开始发布之前一直使用固定的delaySubscription:
Mono<...> polling;
Flux<...> dataPublisher;
polling
.zipWith(dataPublisher.collectList().delaySubscription(Duration.ofSeconds(1)))
.block()
这种方式“有效”,但有点不稳定,因为发布发生在轮询 Mono 可能尚未准备好轮询的时候。
我试图找到另一种不那么不稳定的方法来测试它,但还没有找到。任何帮助将不胜感激。
【问题讨论】:
-
你应该使用Mono.thenMany
标签: java spring-webflux project-reactor