0

我们看到 JavaDocs 中有一个调度程序 https://helidon.io/docs/latest/apidocs/io/helidon/microprofile/faulttolerance/CommandScheduler.html

我们的需要是,我们希望拥有很少的 REST 端点以及处理一些信息的工作,在 helidon MP 中是否可以在一个 jvm 进程中同时拥有这两者?

谢谢你

4

1 回答 1

3

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/

快乐编码!

于 2020-06-18T07:20:00.970 回答