Java 如果我';我已经在处理一组项目了

Java 如果我';我已经在处理一组项目了,java,flux,reactor,Java,Flux,Reactor,这是我的密码 worker = Flux.interval(ofMillis(workerInterval)) .takeWhile(interval -> workerEnabled) .delaySequence(getRandomDelayDuration(INITIAL_DELAY)) .publishOn(Schedulers.parallel()) .flatMap(interval

这是我的密码

worker = Flux.interval(ofMillis(workerInterval))
            .takeWhile(interval -> workerEnabled)
            .delaySequence(getRandomDelayDuration(INITIAL_DELAY))
            .publishOn(Schedulers.parallel())
            .flatMap(interval -> fromBlocking(this::findPractices).flatMapMany(Flux::fromIterable))
            .flatMapSequential(practice -> fromBlocking(() -> processPractice(practice)), 1)
            .retry(error -> logAndRetry(error, PRACTICE.name()))
            .subscribe(
                    result -> LOGGER.info("Worker finalized processing type={}", PRACTICE),
                    error -> LOGGER.error("Worker finalized with error", error)
            );



private final static Scheduler BLOCKING_IO_SCHEDULER = Schedulers.newElastic("bioThreads");

public static <T> Mono<T> fromBlocking(Supplier<T> supplier) {
    return Mono.fromSupplier(supplier)
               .subscribeOn(BLOCKING_IO_SCHEDULER);
}
worker=Flux.interval(单位:百万)
.takeWhile(间隔->可工作)
.delaySequence(getRandomDelayDuration(初始延迟))
.publishOn(Schedulers.parallel())
.flatMap(interval->fromBlocking(this::findpracces).flatMapMany(Flux::fromIterable))
.flatMapSequential(practice->fromBlocking(()->processPractice(practice)),1)
.重试(错误->日志重试(错误,PRACTICE.name())
.订阅(
result->LOGGER.info(“工人最终确定的处理类型={}”,实践),
错误->记录器。错误(“工作人员因错误而完成”,错误)
);
私有最终静态调度程序阻塞_IO_调度程序=Schedulers.newElastic(“bioThreads”);
公共静态模块(供应商){
供应商退货单(供应商)
.subscribeOn(阻塞IO调度程序);
}
目前findPractices将返回60个实践,然后每个实践将由processPractices操作(第二个平面图)。这个很好用

我的意图是,如果processPractices正在运行并正在处理60,则不要在后续的运行间隔向缓冲区添加更多的实践

因此,如果processPractices正在处理60的第一轮,并且只处理第10项,然后调用findPractices,因为workerInterval再次启动,那么我不想向缓冲区添加更多的项


我如何才能做到这一点?

创建org.reactivestreams.Subscriber的实现;此订阅服务器能够通过调用Subscription.request()控制连接的流量应生成多少项。创建org.reactivestreams.subscriber的实现;此订阅服务器能够通过调用Subscription.request()控制连接的流量应生成多少项。