spring boot定时任务

介绍

该demo是基于注解(@Scheduled)以及多线程执行的定时任务。

步骤

启用异步执行

springboot实现异步调用

入口类添加启动注解

@EnableScheduling

@EnableAsync
@EnableScheduling
@SpringBootApplication
@IntegrationComponentScan("com.ztjy")
public class MyApplication {
    public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
   }

编写定时任务


@Component
public class TestScheduling {

    @Value("${my.test.name}")
    private String test;

    @Async
    @Scheduled(cron="${my.test.cron}")
    public void printVal(){
        System.out.println(test+Thread.currentThread().getName());
    }

    @Async
    @Scheduled(cron="${my.test.cron}")
    public void printVal2(){
        System.out.println(test+Thread.currentThread().getName());
    }
}

配置文件

每分钟执行一次!

my:
  test:
    name: "王森"
    cron: "*  */1  *  *  * ?"

效果

cron表达式详解

秒(0~59) 分(0~59) 时(0~59) 日(0~31) 月(0~11) 星期(1~7) 年份(1970-2099)
注意:各个之间的区域是由空格分开的。
年份可以省略。

  • 特殊字符介绍
,        3,8 表示第3秒和第8秒
-       3-8 表示第3秒到第8秒之间每秒都触发
*       表示任意值,在秒的区域上表示每秒,在分钟的区域上描述每分钟
/       A/B A表示开始触发点,B表示触发点之后每隔多久再次触发,比如在秒的位置上5/10 第5秒开始触发,5,15,25,35,45,55,65等
?     仅被用于月 和 星期 两个子表达式,表示不指定值;

示例

  • 示例1:

  • 示例2:

  • 示例3:

posted @ 2019-10-14 15:46  王森  阅读(216)  评论(1编辑  收藏  举报