任务调度
任务调度,简单来说就是定时任务,是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。
Java常见的任务调度方式
基于JDK方式:Timer
和ScheduledExecutorService
Time
(java.util.Timer
) JDK 自带,简单单一,复杂场景不适用。
public class TimeTaskDemo {
static long count = 0;
public static void main(String[] args) {
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
count++;
System.out.println("TIME TASK ===>" + count);
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(timerTask, 0, 1000);
}
}
ScheduledExecutorService
(线程池)JKD 自带,基于线程池实现,可搭配异步(@Asnyc
)。
@RestController
public class ScheduledExecutorDemoContoller {
//... 省略其他代码
@GetMapping("/testSES")
public String ScheduledExecutorService() {
ScheduledExecutorService service = Executors.newScheduledThreadPool(