• 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
  • 相关阅读:
    EBS SQL > Form & Report
    oracle sql 优化分析点
    MRP 物料需求计划
    MRPII 制造资源计划
    Barcode128 应用实务
    Oracle SQL语句优化技术分析
    APPSQLAP10710 Online accounting could not be created. AP Invoice 无法创建会计分录
    Oracle数据完整性和锁机制
    ORACLE Responsibility Menu Reference to Other User
    EBS 常用 SQL
  • 原文地址:https://www.cnblogs.com/nastu/p/15219869.html
Copyright © 2020-2023  润新知