【问题标题】:CommandScheduler Info命令调度程序信息
【发布时间】:2020-06-01 15:11:05
【问题描述】:

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

我们的需求是,我们希望有几个 REST 端点,并且还希望有一个工作来处理一些信息,在 helidon MP 中是否有可能在一个 jvm 进程中同时拥有这两者?

谢谢 火影

【问题讨论】:

    标签: helidon


    【解决方案1】:

    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/

    编码愉快!

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      相关资源
      最近更新 更多