Spring Boot中几种定时任务
Timer类
public static void main(String[] args){ TimerTask timerTask = new TimerTask() { @Override
public void run() {
System.out.println("Timer方式执行一次定时任务");
}
}; new Timer().schedule(timerTask,,*);
}
ScheduledExecutorService类
ScheduledExecutorService,是基于线程设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去并行执行
public static void main(String[] args){ ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
scheduledExecutor.scheduleAtFixedRate( new Runnable() { @Override
public void run() {
System.out.println("ScheduledExecutorService方式执行一次定时任务");
}
}
,,, TimeUnit.SECONDS);
}
Quartz
引入quartz依赖
配置JobDetail和Trigger
测试
Scheduled注解
Spring3.0以后自带的task,在启动类上使用@EnableScheduling开启定时任务支持
使用
@Scheduled(initialDelay = 1000, fixedRate = 3000) 第一次延迟1秒后执行,之后按 fixedRate 的规则每 3 秒执行一次
@Scheduled(cron = "0/10 * * * * ? ")通过 cron 表达式定义规则