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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM