我们看到 JavaDocs 中有一个调度程序 https://helidon.io/docs/latest/apidocs/io/helidon/microprofile/faulttolerance/CommandScheduler.html
我们的需要是,我们希望拥有很少的 REST 端点以及处理一些信息的工作,在 helidon MP 中是否可以在一个 jvm 进程中同时拥有这两者?
谢谢你
我们看到 JavaDocs 中有一个调度程序 https://helidon.io/docs/latest/apidocs/io/helidon/microprofile/faulttolerance/CommandScheduler.html
我们的需要是,我们希望拥有很少的 REST 端点以及处理一些信息的工作,在 helidon MP 中是否可以在一个 jvm 进程中同时拥有这两者?
谢谢你
CommandScheduler
是容错的一部分,你需要的是ScheduledThreadPoolSupplier
.
使用响应式 api 使其更漂亮(适用于 Helidon 2.x 的两种风格):
ScheduledThreadPoolSupplier scheduledThreadPoolSupplier =
ScheduledThreadPoolSupplier.builder()
.threadNamePrefix("scheduled-test-")
.corePoolSize(2)
.build();
Multi.interval(5, TimeUnit.SECONDS, scheduledThreadPoolSupplier.get())
.map(l -> "invocation number " + l)
// max number of invocations
.limit(5)
.forEach(s -> System.out.println("Scheduled " + s))
.await();
scheduledThreadPoolSupplier.get().shutdown();
> Scheduled invocation number 0
> Scheduled invocation number 1
> Scheduled invocation number 2
> Scheduled invocation number 3
> Scheduled invocation number 4
但请注意!这项工作将安排在您服务的每个实例上,我建议先检查 Kubernetes CronJobs。
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
快乐编码!