Java设置定时任务
package com.example.demo.tool;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
/**
* 任务管理
* @author admin_Hzw
*
*/
public class TimeTask {
/**
* @param args
*/
public static void main(String[] args) {
new TimeTask();
}
/**
* 时间间隔 1000是一秒 10*1000是10秒
*/
private static final long PERIOD_DAY = 10 * 1000;
public TimeTask() {
Calendar calendar = Calendar.getInstance();
/**
* 设置每天执行时间
*/
/**小时*/
calendar.set(Calendar.HOUR_OF_DAY, 0);
/**分钟*/
calendar.set(Calendar.MINUTE, 0);
/**秒*/
calendar.set(Calendar.SECOND, 0);
/**第一次执行定时任务的时间*/
Date date=calendar.getTime();
/**
* 如果第一次执行定时任务的时间 小于当前的时间
* 此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
*/
if (date.before(new Date())) {
date = this.addDay(date, 0);
}
Timer timer = new Timer();
TimedTasks task = new TimedTasks();
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schedule(task,date,PERIOD_DAY);
}
/**
* 增加或减少天数
* @param date
* @param num
* @return
*/
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}
package com.example.demo.tool;
import java.util.TimerTask;
/**定时任务*/
public class TimedTasks extends TimerTask {
@Override
public void run() {
System.out.println(”执行任务“);
}
}
怎么在项目启动的时候开启定时任务
启动类
package com.example.demo;
import com.example.demo.tool.TimeTask;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
/*启动定时任务*/
new TimeTask();
System.out.println("启动完成");
}
}