我是靠谱客的博主 幸福篮球,这篇文章主要介绍Quartz&&Task一、Quzrtz二、相关概念三、整合四、Task整合,现在分享给大家,希望可以做个参考。

文章目录

  • 一、Quzrtz
  • 二、相关概念
  • 三、整合
  • 四、Task整合


我的B站主页:https://space.bilibili.com/81170341

一、Quzrtz

定时框架:它基于定时任务的基本思想,做了更细的拆分,又给它加了一些设定,让这个定时任务做得更加高效一些。
比如说你做一个定时任务,至少需要两部分东西,第一你要有一个干的事情,第二你要有一个执行的时间,这些东西,他都做了一系列的规范。

二、相关概念

工作(Job) :用于定义具体执行的工作
工作明细(JobDetail) :用于描述定时工作相关的信息
触发器(Trigger) :用于描述触发工作的规则,通常使用cron表达式定义调度则
调度器(Scheduler) :描述了工作明细与触发器的对应关系

三、整合

整合quartz的坐标

复制代码
1
2
3
4
5
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>

定义具体要执行的任务,继承QuartzJobBean

复制代码
1
2
3
4
5
6
public class QuartzTaskBean extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println(“quartz job run... "); }

定义工作明细与触发器,并绑定对应关系

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Configuration public class QuartzConfig { @Bean public JobDetail printJobDetail(){ return JobBuilder.newJob(QuartzTaskBean.class).storeDurab1y().build(); @Bean public Trigger printJobTrigger() { CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/3 * * * *?"); return TriggerBuilder.newTrigger().forJob(printJobDetail()).withSchedule(cronScheduleBuilder).build(); } }

四、Task整合

开启定时任务功能

复制代码
1
2
3
4
5
6
7
@SpringBootApplication @EnableScheduling//这个 public class Springboot22TaskApplication { public static void main(String[] args) { SpringApplication.run(Springboot22TaskApplication.class, args); }

设置定时执行的任务,并设定执行周期

复制代码
1
2
3
4
5
6
7
8
@Component public class ScheduledBean { @Scheduled(cron = "0/5 * * * *?"//这个 public void printLog(){ System.out.println( Thread.currentThread().getName()+" :run..."); } }

定义工作明细与触发器,并绑定对应关系

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
@Configuration public class QuartzConfig { @Bean public JobDetail printJobDetail(){ return JobBuilder.newJob(QuartzTaskBean.class).storeDurab1y().build(); @Bean public Trigger printJobTrigger() { CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/3 * * * *?"); return TriggerBuilder.newTrigger().forJob(printJobDetail()).withSchedule(cronScheduleBuilder).build(); } }

定时任务相关配置

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
spring: task : scheduling : #任务调度线程池大小默认1 pool: size: 1 #调度线程名称前缀默认scheduling- thread-name-prefix: ssm_ shutdown : #线程池关闭时等待所有任务完成 await-termination: false #调度线程关闭前最大等待时间, 确保最后一定关闭 await-termination-period: 10s

最后

以上就是幸福篮球最近收集整理的关于Quartz&&Task一、Quzrtz二、相关概念三、整合四、Task整合的全部内容,更多相关Quartz&&Task一、Quzrtz二、相关概念三、整合四、Task整合内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部