• springboot的定时任务


    1、定时任务的创建方式:  

    •   基于注解@Schedule和@EnableScheduling
    •   (待完善。。。)

    2、@Schedule@EnableScheduling

      适用于定时任务执行时间较短,并且比较单一。@scheduled定时执行任务的时候是在一个单线程中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成,也就是会造成一些任务无法定时执行的错觉

      (1)在pom.xml中加入依赖,spring-boot-devtools模块可以包含在任何项目中,它可以节省大量的时间。可以不添加

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
    </dependency>

      (2)在springboot的启动类DemoApplication上添加@EnableScheduling

    package com.example.demo;

    @SpringBootApplication @EnableScheduling
    public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); System.out.println("你好"); } }

      (3)创建定时任务类

    package com.example.demo.Time;

    @Component
    public class timer { @Scheduled(cron = "0/15 * * * * ? ") //每隔15秒执行一次 private void test(){ System.out.println("任务开始时间:"+new Date()); } }

    执行效果:

      


    或者只在定时任务类中添加注解信息,不修改启动类DemoApplication

    @Component
    @Configuration      //1.主要用于标记配置类,兼备Component的效果。
    @EnableScheduling   // 2.开启定时任务
    public class timer {
        @Scheduled(cron = "0/15 * * * * ? ")  //每隔15秒执行一次
        private void test(){
            System.out.println("任务开始时间:"+new Date());
        }
    }

    同样也可以定时成功

      

     

    Cron表达式参数分别表示:

    • 秒(0~59) 例如0/5表示每5秒
    • 分(0~59)
    • 时(0~23)
    • 日(0~31)的某天,需计算
    • 月(0~11)
    • 周几( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT)

    注意:是@Scheduled(cron = “0/1 * * * * ?”)中cron的值根据实际需写,可以去下面的网站去转换。
    http://cron.qqe2.com/

  • 相关阅读:
    【响应式Web设计实践 #BOOK#】
    【JS】(+﹏+)~
    -_-#【邮件】qq邮箱不显示图片
    -_-#【Markdown】
    51Nod——N1284 2 3 5 7的倍数
    51Nod——N1118 机器人走方格
    洛谷——P1014 Cantor表
    洛谷—— P1434 滑雪
    洛谷——P1443 马的遍历
    python(24)- 面向对象进阶
  • 原文地址:https://www.cnblogs.com/echola/p/10954552.html
Copyright © 2020-2023  润新知