如何切换到Spring Webflux / Reactor的默认线程池?



反应器提供了将执行上下文转移到不同调度程序的可能性,如下所示:

Mono.just("test")
.doOnNext(x -> System.out.println(currentThread().getName() + " " + x))
.publishOn(MY_SCHEDULER)
.doOnNext(x -> System.out.println(currentThread().getName() + " " + x))
.subscribe();
-----------------------
main test
my-scheduler-1 test

我如何切换回默认使用的主线程池/调度程序在Spring Webflux应用程序(通常它出现在"main";它的名字)?

简短的回答是:你不需要。

更长的回答:你不应该关心某个东西在哪个线程上运行。你可以观看这个演讲,它是提到的要点之一:https://www.youtube.com/watch?v=0rnMIueRKNU

如果你要在一个专用的调度程序上运行一些东西(例如运行一些阻塞任务),你可能应该选择回到并行或boundedElastic,这取决于你的下一步是否有cpu限制。

最新更新