最近项目中用到定时任务,所以需要在spring boot项目中集成定时任务。整体来说非常简单,以下详细说明。

一、在Application启动类上添加@EnableScheduling注解启动定时,代码如下。

package com.example.task;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@EnableScheduling
public class TaskApplication {public static void main(String[] args) {SpringApplication.run(TaskApplication.class, args);}}

二、使用@Component和@Scheduled(cron=“0/5 * * * * ?”)启动定时任务。

package com.example.task.timing;import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class TimingTask {/***  每五秒执行一次*/@Scheduled(cron="0/5 * * * * ?")public void executeFileDownLoadTask() {System.out.println("定时任务启动");}
}

OK,完成可以启动定时任务了,是不是很简单。

源码地址 https://gitee.com/liuzhan5/task.git

以下说说cron七域表达式(第七域年可不填)

一、cron表达式从左到右(用空格隔开):秒 分 小时 日期 月份 星期 年份

二、常用的表达式

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
0 0 12 * * ? 每天中午12点触发
0 15 10 ? * * 每天上午10:15触发
0 15 10 * * ? 每天上午10:15触发
0 15 10 * * ? * 每天上午10:15触发
0 15 10 * * ? 2019 2019年的每天上午10:15触发
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 15 10 15 * ? 每月15日上午10:15触发
0 15 10 L * ? 每月最后一日的上午10:15触发
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发
0 15 10 ? * 6L 2018-2019 2018年至2019年的每月的最后一个星期五上午10:15触发
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发
三、特殊字符

  • 表示所有值。 例如:在分的字段上设置 *,表示每一分钟都会触发。

? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为”?” 具体设置为 0 0 0 10 * ?

  • 表示区间。例如 在小时上设置 “10-12”,表示 10,11,12点都会触发。

, 表示指定多个值,例如在周字段上设置 “MON,WED,FRI” 表示周一,周三和周五触发

/ 用于递增触发。如在秒上面设置”5/15” 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置’1/3’所示每月1号开始,每隔三天触发一次。

L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于”7”或”SAT”。如果在”L”前加上数字,则表示该数据的最后一个。例如在周字段上设置”6L”这样的格式,则表示“本月最后一个星期五”

W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上置”15W”,表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 “1W”,它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,”W”前只能设置具体的数字,不允许区间”-“)。

序号(表示每月的第几个周几),例如在周字段上设置”6#3”表示在每月的第三个周六.注意如果指定”#5”,正好第五周没有周六,则不会触发该配置(用在母亲节和父亲节再合适不过了) ;小提示:’L’和 ‘W’可以一组合使用。如果在日字段上设置”LW”,则表示在本月的最后一个工作日触发;周字段的设置,若使用英文字母是不区分大小写的,即MON与mon相同。

四、允许值

字段 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /

————————————————
版权声明:本文为CSDN博主「黄粱大梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36820717/article/details/88364766

springboot的定时任务注解相关推荐

  1. SpringBoot使用@Scheduled注解实现定时任务

    序言 Spring 3.0 版本之后自带定时任务,提供了@EnableScheduling注解和@Scheduled注解来实现定时任务功能. 使用SpringBoot创建定时任务非常简单,目前主要有以 ...

  2. springboot 使用 @Scheduled注解定时任务, 方法传参解决办法

    如题,springboot使用定时任务很简单,加个注解就行啦 注解的使用方法,1.启动类加上注解 @EnableScheduling //开启定时任务支持 2.方法上使用@Scheduled(cron ...

  3. SpringBoot 实战定时任务 Scheduled

    序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...

  4. springboot配置定时任务及常用的cron表达式

    springboot引入定时任务 springboot引入定时任务主要需要以下几步: 1.引入相关的依赖 2.配置程序开启定时任务 3. 编写定时任务 引入相关的依赖 只用引一个基础的web的依赖就可 ...

  5. SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)

    SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 目录 SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 1.概述 2.最佳实践 2.1创建项目引入依赖(mail) ...

  6. Spring定时任务注解说明

    一.注解说明. Spring 自带的定时任务执行@Scheduled注解,可以定时的.周期性的执行一些任务.查看@Scheduled的注解可以看到有以下三种: 1.1 String cron() de ...

  7. SpringBoot+Schedule 定时任务的配置开关

    很实用,建议收藏 @Scheduled(cron = "0/4 * * * * ?") springboot 定时任务注解 用起来简直不要太shuang, 我们有时在部署测试环境时 ...

  8. SpringBoot实现定时任务的三种方式,总有一款适合你!

    点击关注公众号,利用碎片时间学习 序言 SpringBoot创建定时任务,目前主要有以下三种实现方式: 基于注解(@Scheduled): 基于注解@Scheduled默认为单线程,开启多个任务时,任 ...

  9. SpringBoot整合定时任务和Emil发送

    SpringBoot整合定时任务和Emil发送 定时任务 ​ 任务系统指的是定时任务.定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算,例如年度报表,诸如系统脏数据的处理,再比如系统 ...

  10. linux定时任务重复率,基于SpringBoot实现定时任务的设置(常用:定时清理数据库)...

    1.构建SpringBoot工程项目 1)创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplication @Ena ...

最新文章

  1. 史上最强福利,阿里云半价+Plesk免费2万台速抢!
  2. java中file_详细介绍Java中的File类
  3. FPGA加法器时分复用减少逻辑资源
  4. 部署Zipkin分布式性能追踪日志系统的操作记录
  5. 传统JDBC的弊病和mybatis的解决方案
  6. 在javascript中NodeList和Array的区别及转换方法
  7. 警惕,最新SCI/SSCI期刊14本期刊被剔除?
  8. 如何将网页保存保存为PDF格式?
  9. Echarts世界地图中国分区显示
  10. 【云游戏】携手云流送,让普通终端也可畅享高端游戏画质
  11. 2019-05-22 Domain注入工具;旁注工具;ASP木马;
  12. AI视频智能平台EasyCVR设备录像出现无法播放现象的问题修复
  13. (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...
  14. element-ui中Cascader 级联选择器组件使用(默认选择是value(id),还想要获取label(name值))
  15. c语言编程水果忍者,少儿创意编程scratch初级游戏之一水果忍者
  16. 1小时1篇文学会用python进行AI修复!
  17. 汇编命令及OD常用命令及断点设置
  18. 计算机课题参与者的学术背景,课题参与有几种方法
  19. 奥塔在线:Centos7下vsftp服务的安装及部署
  20. Markdown学习规划

热门文章

  1. vue 强制清理浏览器缓存
  2. 常见WA错误总结(待更)
  3. 64 位 Microsoft Windows 驱动程序清单
  4. 第一届BMZCTF公开赛-WEB-Writeup
  5. 【北亚数据恢复】MSSQL 2000 出现“823”报错信息的数据恢复案例
  6. 信息安全管理的效益分析
  7. 电脑重装系统苹果电脑开不了机的原因分析
  8. CSU2020期中测试题(2)WOWO爬水井
  9. 什么是数字式射频信号发生器
  10. 神经网络中验证集、训练集和测试集