Java 反应堆跳转到错误的调度程序?

Java 反应堆跳转到错误的调度程序?,java,project-reactor,Java,Project Reactor,我有一个通量,我正在使用平面图分步处理,并使用Mono.fromCallable()调用阻塞代码。在查看运行日志时,由于某种原因,退休人员正在并行池中运行。这是为什么?我如何让它们在运行组的计划程序中执行?这基本上是下面的工作流,从消息流开始,按某个键分组,然后对于每个组,我希望在它们自己的调度程序中以最大并发度6(在本例中)运行它们。我做错了什么 messageStream .groupBy(this::grouper) .flatMap(group ->

我有一个通量,我正在使用平面图分步处理,并使用Mono.fromCallable()调用阻塞代码。在查看运行日志时,由于某种原因,退休人员正在并行池中运行。这是为什么?我如何让它们在运行组的计划程序中执行?这基本上是下面的工作流,从消息流开始,按某个键分组,然后对于每个组,我希望在它们自己的调度程序中以最大并发度6(在本例中)运行它们。我做错了什么

messageStream
    .groupBy(this::grouper)
    .flatMap(group ->
        Scheduler scheduler = Schedulers.newBoundedElastic(6, 1, "ChildPool:"+group.key());
        return group
              .publishOn(scheduler)
              .flatMap(t1 -> Mono.fromCallable(() -> chevronOne(t1))
                   .retryBackoff(MAX_RETRIES, Duration.ofSeconds(1), Duration.ofSeconds(60))
                    .onErrorResume(e -> doErrorChevronOne(m, e, t1))
              )
              .flatMap(t2 -> Mono.fromCallable(() -> chevronTwo(t2))
                   .retryBackoff(MAX_RETRIES, Duration.ofSeconds(1), Duration.ofSeconds(60))
                   .onErrorResume(e -> doErrorChevronOne(m, e, t2))
               )
以下是显示调度程序跳转的日志中的几行:

2020-08-12 15:33:20.289 INFO [ChildPool:1004-21] e.u.t.t.f.l.transfers.ITestTransfers:582
2020-08-12 15:33:20.889 INFO [parallel-2] e.u.t.t.f.l.s.TransfersService:475 - ***** DOING chevronTwo ****

publishOn
仅保证给定的
调度程序
将由以下操作员使用<默认情况下,code>retryBackoff在
parallel
调度程序上调度重试,从而得到结果

如果需要在特定的
调度程序上处理某些事情,则必须始终明确调度