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
原文地址:https://www.cnblogs.com/nastu/p/15219869.html