2025年springboot定时任务Scheduled或Quartz

springboot定时任务Scheduled或Quartzhttps blog csdn net article details 什么时候要用到定时任务 1 要求在一个特定的时间给用户发送一个信息 2 或者是规定的时间对 redis 缓存的数据进行一个清除 解决方案二 1 Scheduled 死该久 定时任务器 gt 简单 2

大家好,我是讯享网,很高兴认识大家。

https://blog.csdn.net/_/article/details/
什么时候要用到定时任务
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方法上加一个参数,再注入工厂
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小讯
上一篇 2025-02-25 09:11
下一篇 2025-01-19 20:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/74804.html