Spring定时任务(Cron表达式)
定时任务
在线Cron表达式生成器: https://cron.qqe2.com/
一、SpringBoot自带的定时任务
解决:使用异步任务 + 定时任务来完成定时任务不阻塞的功能
定时任务
- 1、@EnableScheduling 开启定时任务 (可直接加在springboot启动类上)
- 2、@Scheduled开启一个定时任务 (可直接加在需要定时任务的方法上,这个方法必须是注入容器中)
异步任务
- 1、@EnableAsync:开启异步任务 (可直接加在springboot启动类上)
- 2、@Async:给希望异步执行的方法标注(可直接加在需要定时任务的方法上,这个方法必须是注入容器中)
cron表达式特点
- 1、在Spring中表达式是6位组成,不允许第七位的年份
- 2、在周几的的位置,1-7代表周一到周日
特殊字符(,-*/LW#)
,:枚举
(cron=“7,9,23 * * * * ?”):任意时刻的 7,9,23 秒启动这个任务;
-:范围
(cron=“7-20 * * * * ?”):任意时刻的 7-20 秒之间,每秒启动一次
*:任意
指定位置的任意时刻都可以
/:步长
(cron=“7/5 * * * * ?”):第 7 秒启动,每 5 秒一次;
(cron="*/5 * * * * ?"):任意秒启动,每 5 秒一次;
?:(出现在日和周几的位置):为了防止日和周冲突,在周和日上如果要写通配符使用?
(cron="* * * 1 * ?"):每月的 1 号,启动这个任务;
L:(出现在日和周的位置), last:最后一个
(cron="* * * ? * 3L"):每月的最后一个周二
W:Work Day:工作日
(cron="* * * W * ?"):每个月的工作日触发
(cron="* * * LW * ?"):每个月的最后一个工作日触发
#:第几个
(cron="* * * ? * 5#2"):每个月的第 2 个周 4
代码示例:
定时任务配置类
import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling;@EnableAsync //开启异步任务 @EnableScheduling //开启定时任务 @Configuration public class ScheduledConfig {}
业务执行带代码
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service;@Service public class SeckillScheduled {// @Scheduled(cron = "*/5 * * * * ? ")@Scheduled(cron = "0 0 1/1 * * ? ")public void uploadSeckillSkuLatest3Days() {//调用service层方法 定时执行业务代码} }
二、SpringBoot集成Quartz
Spring定时任务(Cron表达式)相关推荐
- 定时任务Cron表达式学习
有关定时任务Cron表达式的那些 背景:今天在做quartZ定时任务,发现了要用Cron表达式去指定出发的时间表. 1.CronTrigger CronTrigger,你可以指定触发的时间表如&quo ...
- spring定时任务cron为每季度第一个工作日转换为cron表达式
最近系统有个需求,执行一个定时任务发送待办事项,一年有六次,分别为每季度第一个工作日.第二季度和第四季度结束后的第十个工作日,可头疼坏了 还好我们系统有个工作日表,于是思路就是先查询出每季度的第一天, ...
- Spring Boot定时任务-cron表达式
其实cron表达式呢,其实就是一个基于字符串的,基于时间的一个定义格式,那我们就来看一下cron表达式语法的定义,cron表达式它是一个字符串的,并且在字符串当中呢,包含6个域或者7个域,然后每个域表 ...
- 定时任务 || Cron表达式
Spring内置的Spring Task,这是Spring3.0加入的定时任务功能. 使用注解的方式定时启动爬虫进行数据爬取. 我们使用的是@Scheduled注解,其属性如下: 1)cron:cro ...
- 定时任务 cron 表达式详解
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. (Spring定时任务的几种实现:见博客另一页:http://blog.csdn.net/jiang ...
- java定时任务cron表达式每周执行一次的坑
java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑. 我要每周四执行一次,我把我写的表达式在这 ...
- linux定时任务 - CRON表达式
CRON 表达式是一个字符串,以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义. CRON 有如下两种语法格式: 秒 分 小时 日期 月份 星期 年 秒 分 小时 日期 月份 ...
- spring定时任务 cron的含义
1.cron 表达式的定义 cron 表达式是一个字符串,该字符串由 6 个空格分为 7 个域,每一个域代表一个时间单位.格式如下: [秒] [分] [时] [日] [月] [周] [年] 通常定义 ...
- 定时任务cron表达式使用详解
项目中有时会需要定时去触发一些任务,Java实现定时任务一般有三种方法: JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService: Quartz 定时器:简单 ...
最新文章
- OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码
- 17岁读大学,25岁博士毕业,高颜值医生爆红网络,却坦言只是普通人
- 遍历list、set、map和array
- PCIe学习笔记(15)--- TLP的ROUTING方式
- 前端学习(2714):重读vue电商网站34之侧边栏路由改造
- ENSP配置 实例七 DHCP配置
- 深度学习之神经网络的结构
- 什么是树(Tree),数据结构中一般有哪些树?
- php 5.3.29 怎么开启debug_PHP代码审计之环境安装(一)
- ai文件图片连接丢失怎么处理_未来美学丨点亮你的AI技能点(一)
- nodejs返回带图片的HTML页面,Nodejs实现简单的网页图片获取
- Java基础 -> 为什么⽤线程池?线程池的创建?
- Nokia Symbian PKG sis文件就会及时更新了
- phpStorm2018安装与破解(免安装打包版)
- 用c语言写成电脑计时小程序
- 2007经典搞笑警句
- matlab三相变压器,simulink三相变压器
- 《2020智慧屏白皮书》重磅发布 华为跨界引领电视行业革新
- 首创Domino前后端彻底分离,结合vue、react优美例子
- 怎么用计算机按反三角函数的导数,反三角函数求导过程