介绍
CronUtil通过一个全局的定时任务配置文件,实现统一的定时任务调度。
使用
1、配置文件
1.1 pom文件
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.0</version> </dependency>
1.2
对于Maven项目,首先在src/main/resources/
下创建config包,在包中放入cron.setting文件(默认是这个路径的这个文件),
然后在文件中放入定时规则,规则如下:
# 我是注释 #执行的类或对象方法所在包的名字 [com.web.kds.hadoop_kafka.TimingTask] #需要执行的类名和方法名 cron.test1 =* */1 * * * cron.test2 =* */1 * * * #执行的类或对象方法所在包的名字 [com.web.kds.hadoop_kafka.image] #需要执行的类名和方法名 WaterMarkUtils.test3 =* */1 * * *
[com.web.kds.hadoop_kafka.TimingTask]:
中括号表示分组,也表示需要执行的类或对象方法所在包的路径名字,这种写法有利于区分不同业务的定时任务。
cron.test1
表示需要执行的类名和方法名(通过反射调用),* */1 * * * 表示定时任务表达式,此处表示每1分钟执行一次,以上配置等同于:
com.web.kds.hadoop_kafka.TimingTask.cron.test1 =* */1 * * *
com.web.kds.hadoop_kafka.TimingTask.cron.test2 =* */1 * * *
com.web.kds.hadoop_kafka.image.WaterMarkUtils.test3 =* */1 * * *
2.测试代码
3.启动/关闭
CronUtil.start();//启动
CronUtil.stop();//关闭
考虑到Quartz表达式的兼容性,且存在对于秒级别精度匹配的需求,Hutool可以通过设置使用秒匹配模式来兼容。
//支持秒级别定时任务 CronUtil.setMatchSecond(true);
此时Hutool可以兼容Quartz表达式(5位表达式、6位表达式都兼容/6位精确到秒)
3.效果