Dropwizard ScheduledExecutorService
在我的情况下,我需要运行一些计划任务(例如每分钟)在数据库中进行一些检查,如果需要,还需要一些子任务。这应该不是数据库运行状况检查!
DW 文档说:
“应该注意的是,环境具有用于托管的执行器服务和SchependedExecutorService实例的内置工厂方法。有关详细信息,请参阅 Lifecycle Environment#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;
}
初始名称的目的是什么,它是否在某个地方使用?希望有人能帮忙。