黄山建设网站公司电话,用凡科做的网站怎么下载,长沙事业单位招聘信息网,如何用照片做模板下载网站声明
Quartz是一种基于java实现的任务调度框架#xff0c;可以定时自动的执行你想要执行的任何任务。
官网#xff1a;quartz官网 利用Quartz的定时任务技术可以应用于许多不同的场景#xff0c;帮助我们实现定时执行任务、数据清理、缓存刷新、邮件发送、数据备份、系统监…声明
Quartz是一种基于java实现的任务调度框架可以定时自动的执行你想要执行的任何任务。
官网quartz官网 利用Quartz的定时任务技术可以应用于许多不同的场景帮助我们实现定时执行任务、数据清理、缓存刷新、邮件发送、数据备份、系统监控与报警、数据分析和报表生成等功能。这些场景都需要定期执行一些重复性或后台的任务Quartz能够提供灵活而可靠的定时任务调度功能帮助我们简化开发和管理。 概念
quartz有四大核心概念分别为
1 工作Job 做什么事用于定义具体执行的工作通常写业务处理的地方。 2 工作明细JobDetail用于描述定时工作相关的信息 3 触发器Trigger用于描述触发工作的规则通常使用corn表达式定义调度规则 4 工作调度器Scheduler描述了工作明细与触发器的对应关系 (什么时候去做) 一个job可以给多个jobDetail封装一个jobDetail可以给trigger来配置规则但是一个trigger只能装配一个jobDetail 引入依赖
直接在pom里面引入依赖 !-- quartz定时任务 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactIdversion2.3.2.RELEASE/version/dependency引入完之后哪怕什么也不写重启项目的时候就会发现控制台已经有quartz相关的日志了 创建Job
创建一个job类用来定义任务逻辑 在这里面有2个点需要注意 1 该类要继承extends QuartzJobBean抽象类 2 继承完后要实现executeInternal方法在该方法里面编写逻辑 代码如下
package com.quartz.job;import org.quartz.JobExecutionContext;
import org.springframework.scheduling.quartz.QuartzJobBean;/*** description: quartz定时任务* author: wyh* date: 2023-11-22 10:04**//*** 1.创建定时任务类 继承QuartzJobBean抽象类,实现其抽象方法executeInternal在此方法指定具体业务
**/
public class MyQuartzJob extends QuartzJobBean {Overrideprotected void executeInternal(JobExecutionContext context) {// 业务处理System.out.println(Quartz running....);}
}
创建QuartzConfig
创建quartz定时任务配置类在该类里面有两个地方需要处理分别是任务明细的构造和触发器的构造 该类有3个地方需要注意 1 类不要忘了加Configuration注解不然不生效 2 方法上不要忘了加Bean注解不然不生效 3 JobBuilder.newJob制定的是具体工作的类 4 TriggerBuilder.newTrigger().forJob制定的是具体明细的方法名不要忘了加括号当然不加编译也会报错。 绑定工作任务并构造任务明细
通过JobDetail绑定对应的job任务 /*** 绑定工作明细**/Beanpublic JobDetail jobDetail(){// 绑定具体的任务类并调用storeDurably进行持久化最后build构建 newJob中的参数就是具体的工作类return JobBuilder.newJob(MyQuartzJob.class).storeDurably().build();}设置触发频率并构造触发器
通过cron表达式配置执行频率然后指定工作明细 任务的触发触发器有SimpleTrigger,CronTrigger,DateIntervalTrigger和NthIncludedDayTrigger四种类型其中SimpleTrigger能够周期性的设置任务触发CronTrigger使用cron表达式的方式实现任务触发实现更多样使用场景也是最多的。 cron 表达式在线生成在线Cron表达式生成器
标题 /*** 创建触发器**/Beanpublic Trigger quartzTrigger(){// 设置触发频率 参数: 秒 分 时 日 月 星期几(0/x表示x秒执行一次)ScheduleBuilderCronTrigger scheduleBuilder CronScheduleBuilder.cronSchedule(0/1 * * * * ?);// 创建触发器并绑定对应的工作明细和频率 forJob指定的是具体的方法名,withSchedule就是上面设置的频率return TriggerBuilder.newTrigger().forJob(jobDetail()).withSchedule(scheduleBuilder).build();}完整代码如下
package com.quartz.config;import com.quartz.job.MyQuartzJob;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** description: quartz定时任务配置类* author: wyh* date: 2023-11-22 10:08**/Configuration
public class QuartzConfig {/*** 2.绑定工作明细**/Beanpublic JobDetail jobDetail(){// 绑定具体的任务类并调用storeDurably进行持久化最后build构建 newJob中的参数就是具体的工作类return JobBuilder.newJob(MyQuartzJob.class).storeDurably().build();}/*** 3.创建触发器**/Beanpublic Trigger quartzTrigger(){// 设置触发频率 参数: 秒 分 时 日 月 星期几(0/x表示x秒执行一次)ScheduleBuilderCronTrigger scheduleBuilder CronScheduleBuilder.cronSchedule(0/1 * * * * ?);// 创建触发器并绑定对应的工作明细和频率 forJob指定的是具体的方法名,withSchedule就是上面设置的频率return TriggerBuilder.newTrigger().forJob(jobDetail()).withSchedule(scheduleBuilder).build();}
}
查看效果
启动项目查看结果。 。