SpringBoot项目中实现job定时任务—极简版

本文介绍了在SpringBoot项目中使用HuTool工具类的CronUtil实现简单定时任务的方法,包括项目文件结构、添加依赖、编写目标方法、制定定时规则和初始化配置,帮助开发者快速创建定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

人工智能,零基础入门!http://www.captainbed.net/inner

现在的web项目中很多场景下都有要执行定时任务的需求,比如说每隔5秒将redis中的统计当天注册用户数持久化到数据库。现在项目中实现这一功能,一般用quartz这一工具框架,但是这个对于一个新手来说比较麻烦,各种查资料配置之类的。后面我接触到一种比较方便快速实现job任务的方法,总结下来:

一、项目文件结构

【1】pom.xml依赖文件,加入HuTool工具类依赖。

【2】JobTest类为定时任务执行目标方法类;

【3】resources/config/cron.setting为定时规则配置;

【4】InitConfig类为初始化配置类;


二、添加依赖

导入HuTool这个国产工具类包,这里含有很多工具类,CronUtil是其中的一个用来做定时任务的工具类,里面还有很多其他很方便的工具类可以自己去研究,官方文档:https://www.hutool.cn/

<dependency>
   <groupId>cn.hutool</groupId>
   <artifactId>hutool-all</artifactId>
   <version>4.2.1</version>
</dependency>

三、编写目标方法和制定定时规则

【1】目标方法就是要被定时执行的方法,示例如下【方法体自定义】:


【2】使用 CronUtil ,需要在 src/main/resources/config 下放入 cron.setting 文件(默认是这个路径的这个文件),然后在文件中放入定时规则,如:

[com.qunawan.home.job]
JobTest.doJob = 0/5 0/1 * * * ? *

这表示:每隔 5秒钟执行一遍 com.qunawan.home.job 包下的 JobTest 类中的 doJob 方法。

对于定时任务的cron表达式不太会写的同学,可以参考这篇博客:https://blog.youkuaiyun.com/qq_35860138/article/details/82738215


四、初始化

在SpringBoot项目中,加一个初始化配置类,让定时器在项目启动就打开,下面是配置类代码:

@Component
public class InitConfig {

    private static final Logger log = LoggerFactory.getLogger(InitConfig.class);

    @PostConstruct
    public void initTimer() {
        log.info("项目启动,开启定时任务……");
        CronUtil.setMatchSecond(true);
        CronUtil.start();
    }
}

这样就会每隔 5 秒中去执行一下目标方法。代码中的 setMatchSecond(true) 是设置支持秒级别定时任务,这么做是为了兼容 Quartz 表达式,5位表达式、6位表达式都兼容。


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值