</pre><pre name="code" class="java">/**
* 定时执行任务
* @param time 格式 12:00:00
*/
public static void executor(String time)
{
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
long oneDay = 24*60*60*100;
long initDelay = getTimeMillis(time)-System.currentTimeMillis();
initDelay = initDelay > 0 ? initDelay : oneDay + initDelay;
executor.scheduleAtFixedRate(new Runnable(){
@Override
public void run() {
System.out.println("我去,真的触发了");
}
}, 1000, initDelay, TimeUnit.MILLISECONDS);// 1000 启动后延迟时间 initDelay 间隔时间 MILLISECONDS单位毫秒
}
/**
* 获取指定时间对应的毫秒数
* @param time "HH:mm:ss"
* @return
*/
private static long getTimeMillis(String time) {
try {
DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");
Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " " + time);
return curDate.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
Java 定时任务 ScheduledExecutorService 的使用
最新推荐文章于 2024-08-06 09:40:24 发布