我有一项任务,我需要在早上6点运行。我有下面的代码来完成这项工作,而且它正在使用ScheduledExecutorService
。
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int delayInHour = hour < 6 ? 6 - hour : 6 - hour + 24;
System.out.println("Current Hour: "+hour);
System.out.println("Commuted Delay for next 6 AM: "+delayInHour);
scheduler.scheduleAtFixedRate(new MyTask(), delayInHour, 24, TimeUnit.HOURS);
问题陈述: -
使用上面的代码,假设我现在运行它,那么它将在早上6点执行MyTask()
。但我需要做的是,每当我第一次运行我的程序时,它应该立即执行MyTask(),下一次运行应该在早上6点发生。
是否可以使用上述代码实现?