我正在寻找一种在反应式API中使用计划任务的方法。我知道它使用线程池,所以它与webflux组件不是很兼容。
你有相应的人来做这项工作吗?
发布于 2021-08-10 12:15:14
您可以尝试在@Scheduled方法中使用Schedulers.immediate():
doWork()
.subscribeOn(Schedulers.immediate())
.subscribe()因此,任务在提交它们的线程上运行。
发布于 2021-08-10 22:39:10
有几种方法可以做到。考虑到你想如何安排它,你也可以使用下面的方法。
@Configuration
class ApplicationConfiguration() {
@PostConstruct
fun init() {
Flux.interval(Duration.ofMinutes(12))
.onBackpressureDrop()
.flatMap { /* some task that return Mono<T> */ }
.subscribeOn(Schedulers.boundedElastic())
.subscribe()
}
}请注意,除非调用阻塞,否则不需要subscribeOn(Schedulers.boundedElastic())。另外,我正在使用onBackpressureDrop,但您的要求可能与此不同。
发布于 2020-04-20 16:57:50
Webflux有它自己的调度程序,我猜应该是这样的:
Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit); https://stackoverflow.com/questions/54093132
复制相似问题