Quartz运行环境
1.Quartz可以运行嵌入在另一个独立式应用程序
2.Quartz可以在应用程序服务器(或servlet容器)内被实例化,并且参与事务
3.Quartz可以作为一个独立的程序运行(其自己的Java虚拟机内),可以通过RMI使用
4.Quartz可以被实例化,作为独立的项目集群(负载均衡和故障转移功能),用于作业的执行
Quartz设计模式
1.Builder模式
2.Factory模式
3.组件模式
4.链式编程
Quartz学习的核心概念
1.任务job
job就是你想要实现的任务类,每一个job必须实现org.quartz.job接口,且只能实现接口定义的execute()方法。
2.触发器Trigger
Trigger为你执行任务的触发器,比如你想每天定时3点发送一份统计邮件,Trigger将会设置3点进行执行任务。
Trigger主要包含俩种SimpleTrigger和CronTrigger俩种。
3.调度器Scheduler
Scheduler为任务的调度器,它将会任务job及触发器Trigger整合起来,负责基于Trigger设定的时间来执行job
Quartz的几个常用API
1.Scheduler用于与调度程序交互的主程序接口。
Scheduler调度程序任务执行计划表,只有安排进行执行计划的任务job(通过sheduler.schedulerjob)方法安排进执行计划,当它预先定义的执行时间到了的时候(任务触发trigger),改任务才会执行。
2.job我们预先定义的希望在未来时间能被调度程序执行的任务类,我们可以自定义。
3.jobDetail使用jobDetail来定义定时任务的实例,jobDetail实例是通过jobBuilder类创建的。
4.jobDataMap可以包含不限量的(序列化)数据对象,在job实例执行的时候,可以使用其中的数据;jobDataMap时候Java Map接口的一个实现,额外增加了一些便于存取基本类型的数据的方法。
5.Trigger触发器,Trigger对象是用来触发执行job的。当调度一个job时,我们实例一个触发器然后调整它的属性来满足job执行的条件。表明任务在什么时候会执行。定义了一个已经被安排的任务将会在什么时候执行的时间条件,比如每2秒就执行一次。
6.jobBuilder用于声明一个任务实例,也可以定义关于该任务的详情比如任务名、组名等,这个声明的实例将会作为一个实际执行的任务。
7.TriggerBuilder触发器创建器,用于创建触发器的trigger实例。
8.jobListener、TriggerListener、SchedulerListener监听,用于对组件的监听
Quartz简单入门
1.建立任务类,进行任务,这个类得实现Job接口,实现execute方法,在execute方法里面进行任务处理
2.创建任务调度器Scheduler(StdSchedulerFactory.getDefaultScheduler)
3.创建任务实例JobDetail jobDetail = JobBuiler.newJob(任务类.class).withIdentity("任务名称","任务分组").build();
4.创建触发器 SimpleTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")//参数1:触发器名称唯一实例) 参数2:触发器组名和任务组名没有关系
.startNow()//马上启动
//.startAt() 设置多久启动
.withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatSecondlyForever(1))//设置每隔多少秒进行任务调度
.build();
5.让调度器关联任务和触发器,保证按照触发器定义的条件执行任务scheduler.scheduleJob(jobDetailo, trigger);
6.启动scheduler.start();
Job和JobDetail介绍
1.Job:工作任务调度的接口,任务类需要实现该接口,该接口中定义execute方法,类似JDK提供的TiemTask类的run方法,在里面编写任务执行的业务逻辑。
2.J