@Schedule
Spring Boot Web依赖中中包含了定时任务
启动定时任务
启动定时任务的关键是在启动类上加入 @EnableScheduling
注解
例如
@EnableScheduling
@SpringBootApplication
public class Application {
public static void main(String[] args) {
......
}
编写定时任务
编写定时需要在方法上加入 @Scheduled
注解
@Scheduled(fixedDelay = 1000)
public void doSomething(){
......
}
方法加上注解之后,还需要在当前类上加入@Component
注解,表明SpringBoot会将该类注入到容器中
@Scheduled 的参数
配置定时任务的参数,参数的单位全是毫秒
- fixedRate=val 上次开始执行时间后 val 毫秒再次执行
- fixedDelay=val 上次执行完时间后 val 毫秒再次执行
- initialDelay=val 初次执行时延迟 val 毫秒执行
- cron 书写cron的规则
cron的规则
这里的cron和linux的crontab不一样
crontab 是五个参数 分 时 日 月 周(0-6)
而这里的cron 是六个参数 秒 分 时 日 月 周(1-7)
两者都没有年的属性
cron的特殊符号
*
代表任意值
?
只能用在日和周,当日和周其中一个被指定值后,其他一个只能用?,表示不指定任何值,注意不能用*,这会使任何值都触发
-
表示范围值内都触发,例如5-20
/
表示开始时间经过多长时间循环执行,例如5/20,在第五分钟后每20分钟执行一次
,
代表枚举值
L
代表最后某一个时间执行,只能用在日,周。例如5L,代表倒数第五天
W
表示有效工作日,只能用于日,系统将离指定日期最近的有效工作日触发。例如5W,若5号是周六,那么在周五时会触发。
LW
可以连用,指定最后某一个工作日
#
代表指定第几个周几,只能用于周。例如4#2,代表某月第二个周三
crontab的特殊符号
只有* , - /
这四种
网友评论