该部分主要是进行Spring下定时任务的设计。采用@Scheduled来标定定时任务函数,其中fixedRate指定函数调用时间间隔,fixedDelay指定任务完成后再次调用的时间间隔。同时还可以通过corn参数来,表达式为“秒 分 时 日 月 周”
"second minute hour day month weekday"
"0 0 * * * *" = 每一天的每小时执行。
"*/10 * * * * *" = 每十秒执行。
"0 0 8-10 * * *" = 每天8, 9和10执行。
"0 0 6,19 * * *" = 每天6:00和19:00执行。
"0 0/30 8-10 * * *" = 每天8:00, 8:30, 9:00, 9:30, 10:00和10:30执行。
"0 0 9-17 * * MON-FRI" = 周一到周五的9:00到17:00执行。
"0 0 0 25 12 ?" = 每个圣诞节午夜执行。
使用方式如下,注意此函数的类要使用@Component进行注解:
@Scheduled(fixedRate = 5000)
public void reportCurrentTimeRate() {
log.info("The time is now {}", dateFormat.format(new Date()));
}
@Scheduled(corn = "* * * * * *")
public void reportCurrentTimeCron() {
log.info("The time is now {}", dateFormat.format(new Date()));
}
为使用定时,Spring需要在后台启动一个守护进程,为初始化后台任务执行器,需要使用注解@EnableScheduling
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}