【发布时间】:2014-12-18 23:43:37
【问题描述】:
在我的情况下,我需要运行一些计划任务(例如每分钟),在数据库中进行一些检查,如果需要一些子任务。这应该不是数据库健康检查!
DW 文档说:
"需要注意的是,Environment 内置了工厂方法 ExecutorService 和 ScheduledExecutorService 实例,它们是 管理。请参阅 LifecycleEnvironment#executorService 和 LifecycleEnvironment#scheduledExecutorService 了解详情。”
有谁知道如何在 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;
}
初始名称的用途是什么,是否在某处使用过?希望有人能帮忙。
【问题讨论】:
标签: java scheduled-tasks dropwizard