一、直接通过@Scheduled来实现
@Configuration
@EnableScheduling
public class TaskTimingJob {
@Scheduled(fixedDelay=60000)
private void configureTasks() {
// todo
}
}
@Scheduled主要的四个参数说明如下:
1、fixedRate是指上一次任务的开始时间到下一次任务的开始时间的间隔,如果阻塞会记录需要执行的次数,通畅后全部会执行。
2、fixedDelay是指了上一次任务的结束时间到下一次任务的开始时间的间隔,如果阻塞会记录需要执行的次数,通畅后全部会执行。
3、cron表达式和fixedRate有点相似,指在哪一刻执行任务,会在配置的任务开始时间判断任务是否可以执行,如果能则执行,不能则会跳过本次执行。
4、如果是强调任务间隔的定时任务,建议使用fixedRate和fixedDelay,如果是强调任务在某时某分某刻执行的定时任务,建议使用cron表达式。
注意:这种方式实现的定时任务当同一时刻有多个任务需要执行,会发生阻塞,即是单线程串行的执行方式,要避免这种情况就要加上注解@Async并且在springboot主类上加@EnableAsync开启异步,这样会默认使用自带的线程池,当然也可以使用自定义的&#x