一、操作

第一步:在启动类上加注解@EnableScheduling注解来开启定时任务。

第二步:编写定时方法

我们了解到在主入口类,添加 @EnableScheduling 注解后, Component注解过的类的方法上,使用 @Scheduled 方法就可以实现定时任务

@Component
@Slf4j
public class MyTask {//@Scheduled(fixedDelay = )每个任务结束,等待指定时间再次执行//@Scheduled注解,注解的参数可以配置时间@Scheduled(fixedDelay=5*1000) // 每五秒执行一次此方法public void testTaskFirst(){log.info("定时任务一:每五秒执行一次,当前时间:"+ LocalTime.now());}}

SpringBoot 提供了除 fixedRate 属性之外更强大的 属性 Cron

@Component
@Slf4j
public class MyTask {//@EnableScheduling注解该类为定时任务//@Scheduled(corn = "") 每个任务结束,等待指定时间再次执行@Scheduled(cron = "0/1 * * * * ?")  // 每过1秒执行此方法public void testTaskTwo(){log.info("定时任务:"+ LocalTime.now());}
}

Quartz 任务调度表达式语法

Quartz cron表达式支持七个域:

名称 是否必须 允许值 特殊字符
秒 是 0-59 , - * /
分 是 0-59 , - * /
时 是 0-23 , - * /
日 是 1-31 , - * ? / L W C
月 是 1-12 或 JAN-DEC , - * /
周 是 1-7 或 SUN-SAT(从周日开始,1是周日,7是周六) , - * ? / L C #
年 否(可以省略) 空 或 1970-2099
注意:

日与周,必须有一个是问号。否则就会有冲突。

月份和星期的名称是不区分大小写的。FRI 和 fri 是一样的。

举例:

表达式意义
“0 0 12 * * ?” 每天中午12点触发
“0 15 10 ? * *” 每天上午10:15触发
“0 15 10 * * ?” 每天上午10:15触发
“0 15 10 * * ? *” 每天上午10:15触发
“0 15 10 * * ? 2005” 2005年的每天上午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 ? 3WED” 每年三月的星期三的下午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 ? * 6L2002-2005” 2002年至2005年的每月的最后一个星期五上午10:15触发
“0 15 10 ? *6#3” 每月的第三个星期五上午10:15触发

扩展:
当quartz和rabbitMQ连用的时候(定时发送邮件),我们得注意:在消息提供方,的定时配置文件起名一定要与其他的不同,再在springmvc里面去导入,防止servlet和listener加载顺序(先监听再s)产生的控制针异常。

二、注意事项

2.1 @Scheduled注释不能与@Transaction注释一起使用

不能共存在一个类中起作用

解决:拆分成两个类

@Service
public class UserServiceImpl implements UserService { @Override @Transactional public void doSomething() { }
} @Service
public class UserServiceScheduler { @Inject private UserService service; @Scheduled(fixedRateString = "${somestring}",initialDelayString = "${anotherstring}") public void doSomething() { service.doSomething(); }
}

Springboot定时任务、Quartz表达式相关推荐

  1. spring中轻松实现定时任务,quartz表达式的在线Cron表达式生成器推荐

    东西虽简单,保留下来,开箱即用,省时省力!!!!! 1.首先在pom.xml中引入quartz相关包 <dependency>               <groupId>o ...

  2. SpringBoot 定时任务cron表达式详解

    cron表达式 顺序 秒 分钟 小时 日期 月份 星期 年(可选) 取值 0-59 0-59 0-23 1-30(31) 1-12 1-7允许特殊字符 , - * / , - * / , - * / ...

  3. Spring Boot定时任务-SpringBoot整合Quartz

    如何通过SpringBoot整合Quartz框架,我们首先去创建一个项目,接下来我们需要在pom文件里添加坐标,我们在使用SpringBoot整合Quartz的时候,需要添加哪些坐标呢,我们来看一下, ...

  4. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...

  5. java quartz 动态执行,浅谈SpringBoot集成Quartz动态定时任务

    SpringBoot自带schedule 沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling @Schedule ...

  6. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  7. SpringBoot结合Quartz实现定时任务

    <从零打造项目>系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 ...

  8. Springboot集成quartz定时任务可视化配置​​​​​​​

    转自我的个人博客:Springboot集成quartz定时任务可视化配置 使用quartz定时任务已经有一段时间了,今天记录一下Springboot 2.x集成Quartz. 1.引入quartz j ...

  9. springboot整合quartz,实现数据库方式执行定时任务

    springboot整合quartz,实现数据库方式执行定时任务.把定时任务信息存进数据库,项目启动后自动执行定时任务. 1.引入依赖包: <dependency><groupId& ...

  10. SpringBoot整合Quartz执行持久化定时任务

    使用: 个人博客项目,定时刷新帖子排名用到了定时任务,在这里记录下来SpringBoot整合Quartz的基本使用,记录的同时也希望能帮助到大家. 1.什么是Quartz 官方介绍: Quartz是一 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记5 Core组件进阶(五)离散傅里叶变换(DFT)
  2. 比特币的闪电网络正在创建自己的黑客阵营
  3. c++ const 常指针
  4. redis 2m数据读取_Flink读写Redis(二)读取redis数据
  5. linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份
  6. sql 孩子兄弟表示法 所有子节点_matlab实现随机+蓄意攻击网络节点(1)
  7. Sun公司开源游戏服务器Project Darkstar Server——(Sun game server , 简称 sgs)学习笔记(二):多人游戏...
  8. 剑指Offer替换空格问题
  9. 从面试题中看Java的Reference(引用)
  10. system()函数
  11. matlab 关闭mdl,双击m文件和mdl文件重新打开一个matlab主程序
  12. servlet原理+流程图+简单实现案例(javaweb)
  13. uni-app 动态获取元素wight/height/left/right/top/bottom/id
  14. laravel开源版华登区块狗
  15. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
  16. string find的用法详解
  17. Cesium本地加载地形(dem高程)数据
  18. 本周大新闻|Meta AI部门重大重组,疑似Cambira CAD图曝光
  19. kali双系统安装(超详细)
  20. 头部和四肢血量间相互流动速率系数的确定(含python代码)

热门文章

  1. 封装解决WebView的那些坑
  2. 2021年T电梯修理免费试题及T电梯修理试题及解析
  3. go-sqlite3 “database is locked”问题解决方案
  4. 注册表删除windows开机启动项
  5. python识别图像里文字_使用 Python 识别并提取图像中的文字
  6. 一个有意思的VMP破解 旺旺吧上网经营管理系统 破解
  7. java application.doevents_Application.DoEvents的用法
  8. 基于微信小程序的毕业设计题目(33)PHP校园失物招领小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  9. python统计中文字数_使用Python计算.pdf文档中的总字数
  10. 华为耗资100亿元的研发基地着火了?