1.quartz 可以与j2ee 和j2se 一起使用
2.事务,集群
3.基于java调用的定时框架
4.1quartz可以运行嵌入在另一个 独立式的应用程序
4.2 可以在servlet使用
4.3 可以通过RMI使用
4.4 quartz可以被实例化,作为独立的项目集群(负载平衡和故障转移功能),用于作业的执行
5.Quartz设计模式
Builder模式
Factory
组件模式
链式编程
6./ jobDetail
/ Trigger
/ schduler
7.核心概念
7.1 任务job 具体做什么
7.2 触发器 Trigger 两种 (simleTrigger ,cronTrigger)比如 每天3点
7.3 调度器Scheduler 将job和trigger整合 多种状态
start stop pause resume
8.常用API
8.1 scheduler- 用于与调度程序交互的主要程序主接口
Scheduler 调度程序-任务执行计划表
8.2 JOB 我们预先定义的希望在未来时间能被调度程序执行的任务类
8.3 JobDetail - 使用JobDetail来定义定时任务的实例。
8.4 Trigger - 触发器,表明任务在什么时候会执行。定义了一个已经被安排的任务将会在什么时候执行的时间条件,比如上一节的实例的每2秒就执行一次。
8.5 JobBuilder -用于声明一个任务实例,也可以定义关于该任务的详情比如任务名、组名等,这个声明的实例将会作为一个实际执行的任务。
8.6 TriggerBuilder - 触发器创建器,用于创建触发器trigger实例。
8.7 joblistener, TriggerListener,SchedulerListener监听器,
用于对组件的监听
9.具体实例讲解
Job 需要继承 org.quartz Job
jobDetail 封装 job ,然后让schedule进行调用
JobExecutionContext 当Scheduler调用一个Job,就会将JobExecutionContext传递给job的execute方法
JobExecutionContext 对象可以获取很多相关信息
JobDataMap
1.使用map 获取
注意代码中的,取值顺序setting 方法
10.有状态和无状态的job
a.一般默认无状态的job,如果要实现job 中自增的count ++ 逻辑呢?
具体实现:存放在jobDataMap 中。
@PersistJobDataAfterExecution // 多次调用,都会进行持久化,保存一些相关信息。比如:jobDataMap
11.simpleTrigger
a,有开始时间,结束时间,重复次数,重复时间间隔
b.重复次数的属性值可以为0,正整数,或 -1
12.CronTriiger 触发器
a.日历那样按日程来出发任务,而不是像短时间多久执行一次
b.cron 表达式·
6个参数 秒分时日月周(年)
周三,周⑤
0/1 每一秒中执行一次