zoukankan      html  css  js  c++  java
  • Hutool工具-定时任务的使用

    https://www.hutool.cn/docs/#/core

    代码示例:

    1、pom.xml的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>test09202</artifactId>
        <version>1.0-SNAPSHOT</version>
        
    <dependencies>
        <!--springboot项目最基本的依赖的配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.2.0.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <!--lombok依赖的配置-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.1.0</version>
        </dependency>
    </dependencies>
    </project>

    2、cron.setting定时任务的时间设置

    #执行的类或对象方法所在的包的名字
    [com.xdh.controller]
    
    #需要执行的类名和方法
    #每1分钟执行一次
    TestHutoolCron.TestHutoolCron111 =* */1 * * *
    #每10秒执行一次
    TestHutoolCron.TestHutoolCron222 =*/10 * * * * *
    
    #如果有第二个不同包的定时任务也可以继续添加[]里面是包名
    #第二个包名
    [com.xdh.controller2]
    
    #每2分钟执行一次
    TestHutoolCron2.TestHutoolCron01 =* */2 * * *
    #每20秒执行一次
    TestHutoolCron2.TestHutoolCron02 =*/20 * * * * *

    3、TestHutoolCron代码

    import cn.hutool.core.date.DateUtil;
    import cn.hutool.log.Log;
    import cn.hutool.log.LogFactory;
    import java.util.Date;
    
    public class TestHutoolCron {
    
        private static final Log log = LogFactory.get();
    
        public void TestHutoolCron111(){
            System.out.println("定时任务,每1分钟执行一次"+ DateUtil.formatDateTime(new Date()));
        }
        public void TestHutoolCron222(){
            System.out.println("定时任务,每10秒执行一次"+ DateUtil.formatDateTime(new Date()));
        }
    }

    4、TestHutoolCron2代码

    import cn.hutool.core.date.DateUtil;
    import cn.hutool.log.Log;
    import cn.hutool.log.LogFactory;
    import java.util.Date;
    
    public class TestHutoolCron2 {
        private static final Log log = LogFactory.get();
    
        public void TestHutoolCron01(){
            System.out.println("定时任务,每2分钟执行一次"+ DateUtil.formatDateTime(new Date()));
        }
        public void TestHutoolCron02(){
            System.out.println("定时任务,每20秒执行一次"+ DateUtil.formatDateTime(new Date()));
        }
    }

    5、SpringBoot启动类代码

    import cn.hutool.core.lang.Console;
    import cn.hutool.cron.CronUtil;
    import cn.hutool.cron.task.Task;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringBootQuartzApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootQuartzApplication.class,args);
    
            //动态的添加定时任务每5秒执行一次
            CronUtil.schedule("*/5 * * * * *", new Task() {
                @Override
                public void execute() {
                    Console.log("动态定时任务,每5秒执行一次");
                }
            });
            //支持秒级
            CronUtil.setMatchSecond(true);
            //开启定时任务
            CronUtil.start(true);
        }
    }

    测试结果:

    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每20秒执行一次2021-09-02 17:28:40
    定时任务,每10秒执行一次2021-09-02 17:28:40
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:28:50
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:29:00
    定时任务,每20秒执行一次2021-09-02 17:29:00
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:29:10
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:29:20
    定时任务,每20秒执行一次2021-09-02 17:29:20
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:29:30
    定时任务,每1分钟执行一次2021-09-02 17:29:30
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每20秒执行一次2021-09-02 17:29:40
    定时任务,每10秒执行一次2021-09-02 17:29:40
    动态定时任务,每5秒执行一次
    动态定时任务,每5秒执行一次
    定时任务,每10秒执行一次2021-09-02 17:29:50
  • 相关阅读:
    Redis(二) 扩展
    Redis(一)基础
    Java垃圾回收机制 入门
    freeregex-0.01 使用文档
    上传文件到阿里云linux服务器
    jQuery代码解释(基本语法)
    JQuery中使用FormData异步提交数据和提交文件
    jQuery获取data-*属性值
    jquery 中 $.map 的使用方法
    mysql创建表时反引号的作用
  • 原文地址:https://www.cnblogs.com/nastu/p/15219869.html
Copyright © 2011-2022 走看看