Reactor,如何保持应用程序存活

Reactor, how to maintain application alive

序列是异步的,因此这将立即return控制调用线程。

public static void main(String[] args) {
    Flux<Long> tick = Flux.interval(Duration.ofSeconds(1));
    Flux<String> ticktock = tick.map(e -> e % 2 == 0 ? "tick" : "tock");
    ticktock
            .log()
            .subscribe(System.out::println);
}

当订阅者消耗无限流量时,保持程序存活的正确方法是什么?

Project Reactor 中有什么东西可以完成这项工作吗?或者我应该求助于 while(true) {} 或 Thread.sleep ?

System.out.println("Hit 'Enter' to terminate");
System.in.read();

在您的 main() 结束时。 这样程序就会被阻塞,直到键盘交互。