@Schedule

2020-02-24  本文已影响0人  海生2018

@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 的参数

配置定时任务的参数,参数的单位全是毫秒

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的特殊符号

只有* , - /这四种

上一篇 下一篇

猜你喜欢

热点阅读