Java 如何为Flux.generate指定计划程序

Java 如何为Flux.generate指定计划程序,java,project-reactor,Java,Project Reactor,如何为Flux.generate指定计划程序?我有阻塞呼叫在里面,我想能够取消。到目前为止,我通过 Flux<Integer> generate = Flux.generate(....); Mono<List<Integer>> fut = Flux.just("ignored") .publishOn(Schedulers.single()) .flatMap(ignored

如何为
Flux.generate
指定计划程序?我有阻塞呼叫在里面,我想能够取消。到目前为止,我通过

Flux<Integer> generate = Flux.generate(....);
Mono<List<Integer>> fut =
        Flux.just("ignored")
                .publishOn(Schedulers.single())
                .flatMap(ignored -> generate)
                .timeout(Duration.ofSeconds(2), Flux.empty())
Flux generate=Flux.generate(…);
莫诺富特=
Flux.just(“忽略”)
.publishOn(Schedulers.single())
.flatMap(忽略->生成)
.timeout(持续时间为秒(2),Flux.empty())
还有更惯用的方法吗?

使用subscribeOn

        Flux<Integer> g1 = Flux.generate(c -> {
            System.out.println(Thread.currentThread());
            c.next(1);
        });

        System.out.println(g1.take(5).collectList().block());

        Flux<Integer> g2 = g1.subscribeOn(Schedulers.elastic());

        System.out.println(g2.take(5).collectList().block());
Thread[main,5,main]
Thread[main,5,main]
Thread[main,5,main]
Thread[main,5,main]
Thread[main,5,main]
[1, 1, 1, 1, 1]
Thread[elastic-2,5,main]
Thread[elastic-2,5,main]
Thread[elastic-2,5,main]
Thread[elastic-2,5,main]
Thread[elastic-2,5,main]
[1, 1, 1, 1, 1]