在我们轻量级任务中,并且项目并发不高时,我们不需要使用Quartz,xxjob等框架,直接使用JDK自带的Timer去实现定时任务简单易上手。下面我就为大家介绍一下java项目实战的定时任务Timer,并且在启动类加载就开启定时任务.
public static void main(String[] args) {
//Calendar这个技术也是基于java的线程去做的
//设置第一次更新的时间点
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 16);//控制小时
calendar.set(Calendar.MINUTE, 16);//控制分钟,
calendar.set(Calendar.SECOND, 5);//控制秒,
//利用java的api Timer来完成一个定时任务
Timer timer = new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
// 实现自己的定时任务操作
System.out.println("定时任务!去更新数据库的数据!");
}
};
/*
* 从第一次发布任务的12:00开始执行任务,每隔(1000 * 60 * 60 * 24)天,定时执行
* */
timer.schedule(task, calendar.getTime() , 1000 * 60 * 60 * 24);
}
上面三个时间参数就是多久开启定时任务,例如我的就是下午4.16分5秒开始执行
timer.schedule(task, calendar.getTime() , 1000...);就是隔多久执行一次
下面是效果图
如果你想类加载就启动定时任务可以在main方法上面打上注解
@PostConstruct,他在类加载之前就会给你实例化bean,让你能够启动定时任务
如果对你有帮助,请一健三连,谢谢!