Timer指定时间定时任务运行
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
@Component
@Slf4j
public class Job02 {
@PostConstruct
public synchronized void run() {
TimerTask task = new TimerTask() {
@Override
public void run() {
// 这里放置每次定时任务需要执行的代码
System.out.println("定时任务执行...");
}
};
// 设置定时任务每天运行的时间点
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18); // 设置为下午3点(24小时制)
calendar.set(Calendar.MINUTE, 15);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
// 如果当前时间已经过了今天运行时间,则设置为明天同一时间
if (calendar.getTime().before(new Date())) {
calendar.add(Calendar.DATE, 1);
}
Date firstTime = calendar.getTime(); // 第一次运行的时间
Timer timer = new Timer();
// 安排定时任务每天在指定时间运行
timer.schedule(task, firstTime, 10000); // 每天间隔24小时
// 如果需要取消定时任务,可以调用timer.cancel()
}
@PostConstruct
public synchronized void run1(){
System.out.println("@PostConstruct");
}
}