Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用。

一 如何实现定时任务

1. 开启定时任务

在启动类上增加@EnableScheduling注解,开启定时任务

2. 定时任务方法

使用@Scheduled注解的方法就会被声明成一个定时任务

@Slf4j
@Component
public class ScheduledTest { @Scheduled(cron = "*/1 * * * * ?")
public void test1(){
log.info("这个定时任务1----");
}
@Scheduled(cron = "*/1 * * * * ?")
public void test2(){
log.info("这个定时任务2----");
}
@Scheduled(cron = "*/1 * * * * ?")
public void test3(){
log.info("这个定时任务3----");
}
}

3. 注册bean

使用@Component将这个定时任务类注册成一个bean组件,交给Spring容器管理。

二 cron表达式详解

在spring 4.x中已经不支持7个参数的cronin表达式了,要求必须是6个参数。cron表达式格式如下:

{秒} {分} {时} {日期(具体哪天)} {月} {星期}
  • 秒:必填项,允许的值范围是0-59,支持的特殊符号包括, - * /,表示特定的某一秒才会触发任务,-表示一段时间内会触发任务,*表示每一秒都会触发,/表示从哪一个时刻开始,每隔多长时间触发一次任务。
  • 分:必填项,允许的值范围是0-59,支持的特殊符号和秒一样,含义类推
  • 时:必填项,允许的值范围是0-23,支持的特殊符号和秒一样,含义类推
  • 日期:必填项,允许的值范围是1-31,支持的特殊符号相比秒多了?,表示与{星期}互斥,即意味着若明确指定{星期}触发,则表示{日期}无意义,以免引起冲突和混乱。
  • 月:必填项,允许的值范围是1-12(JAN-DEC),支持的特殊符号与秒一样,含义类推
  • 星期:必填项,允许值范围是1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此类推,7代表星期六,支持的符号相比秒多了?,表达的含义是与{日期}互斥,即意味着若明确指定{日期}触发,则表示{星期}无意义。

如果对cron表达式不是很熟悉,可以网上找一下,有许多生产cron表达式的网站。Spring Task就简单介绍到这了,使用起来非常方便,下一章将介绍Quartz的使用及将任务持久化存储。

此是spring-boot-route系列的第二十篇文章,这个系列的文章都比较简单,主要目的就是为了帮助初次接触Spring Boot 的同学有一个系统的认识。本文已收录至我的github,欢迎各位小伙伴star

githubhttps://github.com/binzh303/spring-boot-route

点关注、不迷路

如果觉得文章不错,欢迎关注点赞收藏,你们的支持是我创作的动力,感谢大家。

如果文章写的有问题,请不要吝惜文笔,欢迎留言指出,我会及时核查修改。

如果你还想更加深入的了解我,可以微信搜索「Java旅途」进行关注。回复「1024」即可获得学习视频及精美电子书。每天7:30准时推送技术文章,让你的上班路不在孤独,而且每月还有送书活动,助你提升硬实力!

最新文章

  1. 文档对象模型DOM通俗讲解
  2. [Android]Google 开源的 Android 排版库:FlexboxLayout
  3. Logstash-5.0同步.json文件到ElasticSearch-5.0配置文件
  4. 使用MLeaksFinder检测项目内存泄露总结
  5. 影响性能的关键部分-ceph的osd journal写
  6. getGLES1ExtensionString: Could not find GLES 1.x config!
  7. Java编程中“为了性能”尽量要做到的一些地方
  8. Ajax异步调用使用
  9. KeySweeper 微软无线键盘嗅探装置
  10. maven学习笔记(定制一个Web项目)
  11. Python 描述符(descriptor) 杂记
  12. 编译U-boot时,make[1]: *** 没有规则可以创建mkimage.o”
  13. Java学习之道:Java项目打包发布
  14. POJ3318【随机化算法挺有意思】
  15. Build制作模型
  16. UVa1595,Symmetry
  17. tomcat如何路由映射网址
  18. ECSHOP /mobile/admin/edit_languages.php
  19. Gradle实现编译差异
  20. ICE中间件相关

热门文章

  1. 【小白学PyTorch】10 pytorch常见运算详解
  2. 【小白学PyTorch】11 MobileNet详解及PyTorch实现
  3. Git切换分支开发
  4. oracle adf 入门
  5. Java中toCharArray()方法
  6. vulnhub靶机之Quaoar
  7. python中获取中位数
  8. tomcat开机自启
  9. burp suite之Target(目标)
  10. 划重点!AWS的湖仓一体使用哪种数据湖格式进行衔接?