SpringBoot之定时任务Spring Task简单的应用
1 Spring Task
Spring Task
可以实现定时任务,也叫做任务调度框架
可以间隔一定事件,或者指定日期实现规律性的操作
CRON表达式
作用:设置时间
格式:
秒 分 时 日 月 周 年
这七个位置、顺寻不能调换!!!
年可以省略!!!
日和周不能同时有值!!!其中一个使用 ? 占位!!!
一个好用的网址,用于在线生成CRON表达式:http://cron.qqe2.com/
0 0 12 * * ? 每天12点执行执行
0 0 0/12 * * ? 每隔12小时执行一次
0 0 1/12 * * ? 1小时后执行,后面每隔12小时执行一次
0/3 * * * * ? 每隔3秒执行
0/3 0 * * * ? 每小时的0分 每隔3秒执行 一小时执行20次
2 定时任务的启用
- 在启动类上加入注解
@EnableScheduling
它不用额外导包,是spring自带的! - 自定义人物类
2.1 我习惯性新建一个包task
2.2 定义一个Task类HelloTask
,为了让IOC创建这个类的对象,我们需要在类上加注解@Component
2.3 写一个方法,方法要求无参数无返回值,在方法上加入CRON
表达式
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class HelloTask {
@Scheduled(cron = "0/3 * * * * ?")
public void hello() {
System.out.println("定时任务演示:"+System.currentTimeMillis()/1000);
}
}
启动启动类,你会发现控制台每隔3秒钟就会打印一句话:
3 应用场景
我们可以在方法种写入需要规律性的操作,使操作自动进行。
这就是定时作业。
参考我的另一篇博客 https://blog.csdn.net/XuDe_Universe/article/details/99082025 中用定时任务调用第三方接口抓取数据。