min*_*ibi 7 java scheduled-tasks project-reactor
如何使用Reactor而不是java的调度器获得相同的效果?
Executors.newSingleThreadScheduledExecutor()
.scheduleAtFixedRate(() -> counter.set(0) , computeDelay(), computePeriod(), TimeUnit.MILLISECONDS)
Run Code Online (Sandbox Code Playgroud)
我试过
Flux
.interval(Duration.ofMillis(computeDelay()), Duration.ofMinutes(RESET_PERIOD_MINUTES))
.doOnNext( counter.set(0))
.subscribe())
Run Code Online (Sandbox Code Playgroud)
但它会产生不必要的 Long 值。我在 Flux API 中找到了一些调度程序,但在尝试创建一个调度程序时,我得到了 Disposable 对象,然后我不知道应该用它做什么
你找到了这两个选项。Flux.interval 对于与其他运算符组合非常有用。它发出代表每个价格变动的长整型,因为 Flux 必须发出一些东西
Scheduler.schedulePeriodically 是另一个选项,几乎等同于 ExecutorService.scheduleAtFixedRate,只不过它返回 Disposable 而不是 Future of Void。(在这两种情况下你都会用它来取消工作)