• 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:

  • 相关阅读:
    /usr/sbin/sshd报错:Missing privilege separation directory: /run/sshd
    docker挂载GPU
    docker修改docker image存储目录
    ubuntu卸载显卡驱动,CUDA
    linux之删除用户
    Python之pathlib用法
    linux修改文件权限
    Pytorch检查cuda
    PyCharm: EOF while reading packet报错
    ubuntu20.04换源
  • 原文地址:https://www.cnblogs.com/wangsen/p/11662663.html
Copyright © 2020-2023  润新知