一. 前言
最近经常有小伙伴问辉哥,咋能快速实现定时任务呀?看了一堆Quartz、XXL-Job、Elastic-Job等,看的是眼花缭乱懵懵懂懂的,有没有更简单的方式呢?来,今天辉哥手把手地带着你学会定时任务,只要5分钟,让你玩转定时任务!
二. 定时任务
定时任务又叫做任务调度,主要是用于实现按照一定的时间格式,或指定的日期重复地执行某个业务。比如:
-
每个月25号的信用卡还款提醒;
-
每隔5分钟一次进行心跳检查;
-
系统会员的生日提醒;
-
缓存数据的定时同步更新;
-
……
三. Spring Task
1. Spring Task是什么
Spring3.0之后,提供了一种史上最简单的定时任务(如有不服,请在评论区“大辩”哟),这就是Spring Task。可以说,它简单又好用,真的是谁用谁知道。话不多说,辉哥给你来个小旋涡,开怼!
2. Spring Task初体验
-
创建SpringBoot项目
-
在入口类添加@EnableScheduling注解
-
编写代码实现定时任务
@Component
public class HelloJob {
@Scheduled(cron = "0/3 * * * * ?")
public void hi(){
System.err.println("大家好,我是 遇见辉哥-"+System.currentTimeMillis());
}
}
-
运行测试
看到了吗,是不是贼简单?
不好意思,辉哥,你写的是啥玩意,我都看不懂!对,主要就是那个cron是嘛意思?
四. Spring Task核心
1. CRON表达式
cron表达式是字符串,实际上是由七个部分组成,表示描述细节的时间表,主要用于任务调度。它的组成格式为:秒 分 时 日 月 星期 年
cron每个部分的详细说明如下所示:
具体表达式中可以出现的符号如下所示:
如果你觉得自己设计cron表达式,我们也可以在线生成。来吧,辉哥给你个地址可以在线生成cron:https://cron.qqe2.com/
2. Spring Task的核心注解
@EnableScheduling这个注解,修饰的是类,主要作用是用于启动定时任务,时刻监控我们所写的任务该不该触发。
@Scheduled这个注解,修饰的是方法,主要用来标记哪个方法需要定时触发,同时通过内部属性cron实现定时任务的触发规则,其实就是编写cron表达式。
ps:记得需要定时执行的方法,需要利用IOC创建对象,要不然怎么触发呢?
3. 小结
好了,到这里辉哥就把定时任务的简单使用给大家说完了。我们来看看表,嗯,5分钟还差一秒,现在你会了吗?
当然,至于你要编写什么具体的定时任务,这还得从你的具体需求出发。有任何问题的小伙伴,都可以关注和私信我们哟,希望每个在编程路上狂奔的小伙伴,都能收获更多的知识!让我们一起加油一起冲!
*威哥Java学习交流Q群:691533824
加群备注:CSDN推荐