@Schedule

作者: 海生2018 | 来源:发表于2020-02-24 13:38 被阅读0次

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

    只有* , - /这四种

    相关文章

      网友评论

          本文标题:@Schedule

          本文链接:https://www.haomeiwen.com/subject/rvfvqhtx.html