Flux Reactor - 每小时的简单时间表

Flux Reactor - simple schedule every hour

如何使用 Reactor 而不是 java 的调度程序获得相同的效果?

Executors.newSingleThreadScheduledExecutor()
         .scheduleAtFixedRate(() -> counter.set(0) , computeDelay(), computePeriod(), TimeUnit.MILLISECONDS)

我试过了

 Flux
    .interval(Duration.ofMillis(computeDelay()),  Duration.ofMinutes(RESET_PERIOD_MINUTES))
    .doOnNext( counter.set(0))
    .subscribe())

但是它生成了不必要的 Long 值。我在 Flux API 中找到了一些调度程序,但在尝试创建一个时我得到了 Disposable 对象,然后我不知道应该如何处理它

您找到了两个选项。 Flux.interval 可用于与其他运算符组合。它发出代表每个刻度的多头,因为 Flux 必须发出 something

Scheduler.schedulePeriodically 是另一个选项,几乎等同于 ExecutorService.scheduleAtFixedRate,除了它 returns 是 Disposable 而不是 Future of Void。 (在这两种情况下你都会用它来取消工作)