java - Dropwizard ScheduledExecutorService

标签 java scheduled-tasks dropwizard

在我的例子中,我需要运行一些计划任务(例如每分钟),在数据库中进行一些检查,如果需要的话还需要一些子任务。这应该不是数据库健康检查!

DW 文档说:

"It should be noted that Environment has built-in factory methods for ExecutorService and ScheduledExecutorService instances which are managed. See LifecycleEnvironment#executorService and LifecycleEnvironment#scheduledExecutorService for details."

有谁知道如何在 DW 中实现这个?尝试使用 DW 代码的可能性,我发现了这个:

String nameFormat = "?What should this string contain?";
ScheduledExecutorServiceBuilder sesBuilder = environment.lifecycle().scheduledExecutorService(nameFormat);
ScheduledExecutorService ses = sesBuilder.build();
Runnable alarmTask = new AlarmTask();
ses.scheduleWithFixedDelay(alarmTask, 0, 5, TimeUnit.SECONDS);

这是 DW 中执行此操作的正确方法吗?顺便说一句,一个可运行的虚拟机:

  private static final class AlarmTask implements Runnable {
      DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
      Calendar cal = Calendar.getInstance();
        @Override public void run() {
          ++fCount;

            cal = Calendar.getInstance();
            System.out.println(fCount + "x BEEP:" + dateFormat.format(cal.getTime()));
        }
        private int fCount;
      }

初始名称的用途是什么?是否在某处使用过?希望有人能帮忙。

最佳答案

我在 Dropwizard 应用程序中做几乎相同的事情来定期运行作业。有诸如 dropwizard-jobs 和 dropwizard-quartz 之类的项目,但这似乎可以很好地满足我的简单需求。

ScheduledExecutorServiceBuildernameFormat 作为命名线程的模式传递给 ThreadFactoryBuilder。该文档可能对您有帮助:https://guava.dev/releases/snapshot/api/docs/com/google/common/util/concurrent/ThreadFactoryBuilder.html#setNameFormat(java.lang.String)

关于java - Dropwizard ScheduledExecutorService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525845/

相关文章:

java - 如何知道使用 Runtime.exec() 执行的命令是给出一些输出还是只是等待而不给出任何输出?

java - RegEx : Where should I start? 之后分割 PDF

java - 在 dropwizard 0.7.0 中使用 CORS header 过滤器

java - Dropwizard 中的模式 Multi-Tenancy

java - 无法使用 updatetool 安装 javaee7 教程的教程内容

java - 等待 ScheduledExecutorService 中的事件

scheduled-tasks - Windows 任务计划程序错误 101 启动失败代码 2147943785

java - Spring任务在特定时间范围内固定延迟

java - Dropwizard:config.yml 有错误

java - 如何在构建时在Gradle中运行控制台命令?