网站建设毕业设计的分类号,视频制作素材,要怎么网站做推广,伊川县住房和城乡建设厅网站QUARTZ 石英框架
1.Quartz的概念
Quartz就是一个基于Java实现的任务调度框架#xff0c;用于执行你想要执行的任何任务。 Quartz是OpenSymphony开源组织在Job scheduling#xff08;定时调度#xff09;领域的开源项目#xff0c;它可以与J2EE和J2SE应用程序相结合也可以…QUARTZ 石英框架
1.Quartz的概念
Quartz就是一个基于Java实现的任务调度框架用于执行你想要执行的任何任务。 Quartz是OpenSymphony开源组织在Job scheduling定时调度领域的开源项目它可以与J2EE和J2SE应用程序相结合也可以单独使用。
Quartz是开源且具有丰富特性的任务调度库能够集成任何的Java应用。它能创建简单的或者复杂的调度任务以执行上十上百上千上万的任务。任务job被定义为标准的Java组件。能工执行任何你想要实现的功能。Quartz调度框架包含许多企业级的特性如JTA事务集群的支持。 官网 Quartz对任务调度进行了高度抽象提出了三个核心概念并在org.quartz包中提供接口和类进行了描述
Quartz框架核心概念
任务就是执行的工作内容Quartz提供Job接口来支持任务定义触发器定义触发器Job执行的时间触发规则Quartz提供Trigger类及其子类支持触发器功能调度器Quartz提供了Scheduler接口将工作任务和触发器绑定保证任务可以在正确的时间执行
Maven中Java项目搭建
第一步
引入依赖包
!-- java 项目是这个版本呢 --dependencygroupIdopensymphony/groupIdartifactIdquartz-all/artifactIdversion1.6.3/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.36/version/dependencydependencygroupIdcommons-collections/groupIdartifactIdcommons-collections/artifactIdversion3.1/version/dependencydependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version/dependency第二步 定时任务
/*** 创建任务 实现Job*/
public class MyJob implements Job {//核心方法Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println(我正在吃东西);}
}Quartz中的触发器类型SimpleTrigger和CronTrigger
测试1
/*** 创建SimpleTrigger触发器 测试启动*/
public class SimpleTrigger_Test {public static void main(String[] args) {// TODO: SimpleTrigger 执行的操作try{//1.定义任务对象 名字 分组名 任务类JobDetail job new JobDetail(MyJob,2085group, MyJob.class);//2.创建SimpleTrigger触发器 名字 分组名字 类型 时间SimpleTrigger trigger new SimpleTrigger(Mytr,2085trigger,SimpleTrigger.REPEAT_INDEFINITELY,3000);//3.创建调度器SchedulerFactory factory new StdSchedulerFactory();Scheduler scheduler factory.getScheduler();//注册 任务对象 触发器scheduler.scheduleJob(job, trigger);//4.启动调度器scheduler.start();}catch (Exception e){e.printStackTrace();}}
}测试2 /*** 使用CronTrigger 表达式由6~7位元素组成*/
public class CronTrigger_Test {public static void main(String[] args) {//TODO: CronTrigger 执行的操作try{//1.定义任务对象JobDetail job new JobDetail(MyJob,2085group,MyJob.class);//2.创建SimpleTrigger触发器// 6位表达式 7位 第七位就是当前的年份可以不屑// 弄一个 5-16日 14.40 不指定 2022年 执行CronTrigger trigger new CronTrigger(MyJobtrg,2085trigger,0 40 14 16 5 ? 2022);//3.创建调度器SchedulerFactory factory new StdSchedulerFactory();Scheduler scheduler factory.getScheduler();//注册scheduler.scheduleJob(job, trigger);//4.启动调度器scheduler.start();}catch (Exception e){e.printStackTrace();}}
}
//TODO: 这个是提示是谁的
1. SimpleTrigger:定义间隔多长时间触发
2. CronTrigger:定义特定时间节点触发
要使用CronTrigger必须掌握Cron表达式 Cron表达式由6~7个由空格的时间元素组成。第七个元素是可选参数 Cron表达式位置的含义 秒分钟小时月份中的那一天月份星期几年份位置字段含义范围允许的特殊字符1秒0~59* /2分钟0~59* /3小时0~23* /4月份中的哪一天0~31* / ? L5月份1~12 或 JAN~DEC* /6星期几1~7 或 SUN~SAT* / ? L #7年份1970~2099* / Cron表达式的每个字段都可以显示地规定一个值如果 49、一个范围如 1-6、一个列表如135或者一个通配符 如 * Cron表达式有几个特殊的字符 - 中划线,表示在一个范围 , 使用逗号间隔的数据表示一个列表 * 表示每一个值它可以用于所有字段。例如在小时字段表示每一个小时 ? 该字符仅用于 ”月份中的那一天“ 字段和 ”星期几“ 字段 表示不指定值 / 通常表示位x/y x为起始值y表示值的增量。 L表示最后一天仅在日期和星期字段使用 # 只能用于 ”星期几“ 字段表示这个月的第几个周几。例如”6#3“ 指这个月第三个周五 Spring 整合
配置任务
配置任务配置触发器配置调度器
SpringBoot 整合
第一步 导入Maven坐标 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-expression/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-oxm/artifactIdversion4.3.18.RELEASE/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependency!--quartz石英框架--dependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdversion2.3.2/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.32/version/dependencydependencygroupIdcommons-collections/groupIdartifactIdcommons-collections/artifactIdversion3.1/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-io/artifactIdversion1.3.2/version/dependencydependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version/dependency第二部 applicationContext.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd
!--配置任务--bean idtask classorg.springframework.scheduling.quartz.JobDetailFactoryBeanproperty namejobClass valuecom.spring_quartz.MyJob/property/bean
!--配置触发器--bean idtrigger classorg.springframework.scheduling.quartz.SimpleTriggerFactoryBeanproperty namejobDetail reftask/property namerepeatInterval value3000//bean!--配置调度器--bean classorg.springframework.scheduling.quartz.SchedulerFactoryBeanproperty nametriggerslistref beantrigger/ref/list/property/bean
/beans第三步 创建任务类
//任务类 继承QuartzJobBean
public class MyJob extends QuartzJobBean {Override//核心方法protected void executeInternal(JobExecutionContext context) throws JobExecutionException {System.out.println(~~~妈妈喊我回家吃月饼);}
}
第四步 启动测试
public class test {public static void main(String[] args) {new ClassPathXmlApplicationContext(applicationContext.xml);}
}