Java 在flatMap调用后,反应堆未运行

Java 在flatMap调用后,反应堆未运行,java,reactive-programming,spring-data-mongodb,project-reactor,Java,Reactive Programming,Spring Data Mongodb,Project Reactor,我正在使用SpringData MongoDB反应流驱动程序,其代码如下: reactiveMongoOperations.changeStream(changeStreamOptions,MyObject.class) .parallel() .runOn(Schedulers.newParallel(“我的调度器”,4)) .map(ChangeStreamEvent::getBody) .flatMap(o->{ 查找和修改(查询、更新、选项、MyObject.class) }) .sub

我正在使用SpringData MongoDB反应流驱动程序,其代码如下:

reactiveMongoOperations.changeStream(changeStreamOptions,MyObject.class)
.parallel()
.runOn(Schedulers.newParallel(“我的调度器”,4))
.map(ChangeStreamEvent::getBody)
.flatMap(o->{
查找和修改(查询、更新、选项、MyObject.class)
})
.subscribe(此::进程)
我希望一切都能在我的调度程序中执行。实际发生的情况是,
flatMap
操作确实在
myscheduler
中执行,而我的
process()
方法中的代码却没有执行

有人能解释一下为什么会这样吗?这是一个bug还是我做错了什么?如何使
Flux
中定义的所有操作在同一个调度程序上执行?

runOn()
指定用于运行并行线程的每个“轨道”的调度程序。它不会影响订阅者

如果要为订阅服务器指定计划程序,则应指定在原始
Flux
上使用(在
parallel()
调用之前)。

runOn()
指定用于运行并行线程的每个“轨道”的计划程序。它不会影响订阅者


如果要为订阅服务器指定计划程序,则应指定在原始
通量上使用(在
并行()调用之前)。

进程
在哪个线程中执行?是否是mongo驱动程序更改了
find和modify
中的线程?@SimonBaslé中的
进程
方法在通用线程(“线程nn”)中执行。如果在
flatMap()
调用之后添加另一个
runOn()
,则
进程将在
我的调度程序中执行。我认为我不需要这样做。
进程在哪个线程中执行?是否是mongo驱动程序更改了
find和modify
中的线程?@SimonBaslé中的
进程
方法在通用线程(“线程nn”)中执行。如果在
flatMap()
调用之后添加另一个
runOn()
,则
进程将在
我的调度程序中执行。不过我觉得我不需要这么做。