一. 前言

最近经常有小伙伴问我,咋能快速实现定时任务呀?看了一堆Quartz、XXL-Job、Elastic-Job等,看的是眼花缭乱懵懵懂懂的,有没有更简单的方式呢?来,今天我手把手地带着你学会定时任务,只要5分钟,让你玩转定时任务!

二. 定时任务

定时任务又叫做任务调度,主要是用于实现按照一定的时间格式,或指定的日期重复地执行某个业务。比如:

每个月25号的信用卡还款提醒;每隔5分钟一次进行心跳检查;系统会员的生日提醒;缓存数据的定时同步更新;……

三. Spring Task

1. Spring Task是什么

Spring3.0之后,提供了一种史上最简单的定时任务(如有不服,请在评论区“大辩”哟),这就是Spring Task。可以说,它简单又好用,真的是谁用谁知道。话不多说,我给你来个小旋涡,开怼!

2. Spring Task初体验

创建SpringBoot项目
在入口类添加@EnableScheduling注解
编写代码实现定时任务
@Componentpublic 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分钟还差一秒,现在你会了吗?

当然,至于你要编写什么具体的定时任务,这还得从你的具体需求出发。最后分享一套JavaWeb视频,从零基础入门到项目实战,让你学习Java不迷茫!!!

JavaWeb 教程小白零基础入门到项目实战www.zhihu.com/education/video-course/1491848369807552512

有任何问题的小伙伴,都可以关注和私信我哟,希望每个在编程路上狂奔的小伙伴,都能在我这里收获更多的知识!让我们一起加油一起冲!

分类: 教程分享 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录