Как я могу получить тот же эффект с реактором вместо планировщика 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())

Но он генерирует неценируемое длительное значение. Я нашел несколько планировщиков в API Flux, но, пытаясь создать один, я получил одноразовый объект, то я понятия не имею, что делать с этим

5
minizibi 7 Мар 2018 в 20:32

1 ответ

Лучший ответ

Вы нашли оба варианта. Flux.interval полезен для составляющих с другими операторами. Он излучает длинные, которые представляют каждую галочку, потому что Flux должен выделять что-то

Scheduler.scheduleperiodially - другой вариант, в значительной степени эквивалентен ExecutorService.scheduleAtfixedRate, за исключением того, что он возвращает одноразовый, а не будущее пустоты. (В обоих случаях вы будете использовать это для отмены работы)

1
Simon Baslé 8 Мар 2018 в 16:08