springboot定时任务Scheduled或Quartz

https://blog.csdn.net/qq_35387940/article/details/104749059
什么时候要用到定时任务
1) 要求在一个特定的时间给用户发送一个信息
2) 或者是规定的时间对redis缓存的数据进行一个清除
解决方案二:
1) Scheduled(死该久)定时任务器 ——>简单
2) 整合Quartz(Q只)定时任务框架 ——>复杂

一、 scheduled
在这里插入图片描述
0/2是从0开始每隔两秒的意思
2 的话就是每分钟的第2秒触发

下面是允许值,只能在允许值范围内否则会报错
在这里插入图片描述
以下一个星号的月份是闰月,表示只有在有31号的月份的下午6点50分3秒执行定时器
在这里插入图片描述
然后如果你填了个2的话就会报错
在这里插入图片描述
星期的话是从周日表示1然后4的话其实是星期3,这表示2月份的每周3下午6点50分3秒触发定时器,加个?表示占位舍弃这个判定。因为如果2月的周3不在这个日的话也会报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、 Quartz的介绍和Quartz的使用思路
2.1、Quartz的介绍
在这里插入图片描述
2.2 使用思路
1)job – 任务 – 你要做什么事?
2)Trigger – 触发器 – 你什么时候去做?
3)scheduled – 任务调度 – 你什么时候需要去做什么事?
2.3 普通项目使用quartz
在这里插入图片描述
添加pom依赖
在这里插入图片描述
1)创建job类
在这里插入图片描述
Trigger
方法
Repeathourlyforever()每小时执行一次
Repeathourlyforever(int hours)每hours时执行一次
RepeatHourlyfortotalcount(int count)每小时执行一次,一共count次
RepeatHourlyfortotalcount(int count,int hours)每hours时执行一次,一共执行count次

RepeatSecondlyforever()每秒执行一次

2)创建测试类
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3)执行:
在这里插入图片描述
1)用cron表达式来做
改trigger这里就行,每两秒执行以下
在这里插入图片描述
三、 springboot整合quartz定时框架
3.1)修改pom文件添加依赖

<!-- Quartz坐标-->
<dependency>
   <groupId>org.quartz-scheduler</groupId>
   <artifactId>quartz</artifactId>
   <version>2.2.1</version>
   <exclusions>
      <exclusion>
         <artifactId>s1f4j-apik</artifactId>
         <groupId>org. slf4j</groupId>
      </exclusion>
   </exclusions>
</dependency>
<!--添加Scheduled坐标-->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context-support</artifactId>
</dependency>
<!-- Sprng tx坐标-->
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-tx</artifactId>
</dependency>

Spring tx做事务的依赖
3.2)编写任务类
在这里插入图片描述
3.3)编写配置类
在这里插入图片描述
在这里插入图片描述
简单的trigge
在这里插入图片描述
在这里插入图片描述
启动
在这里插入图片描述
在这里插入图片描述
给的是重复5次所以一共是6次每个两秒

用cron Trigger
在这里插入图片描述
修改scheduler
在这里插入图片描述
在这里插入图片描述
四、 任务类(job)中如何完成一些其他类的注入
在这里插入图片描述
在这里插入图片描述
然后我们运行之后报了一个空指针异常
在这里插入图片描述
报空指针表示userservice没有注入进来

原因:创建对象是使用反射创建的,被注入的对象任务类没有注入spring所以注入失败

注入:要求注入对象和被注入对象都在spring的ioc容器中
在这里插入图片描述
在这里插入图片描述
解决方法:
在这里插入图片描述
在这里插入图片描述
然后在scheduler方法上加一个参数,再注入工厂
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无极的移动代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值