quartz框架分析(二)

Quartz框架执行的任务需要写在一个实现Job接口的类中,在实现类中的execute(JobExecutionContext context)中执行相关的操作,通过实现Job接口来使你的Java 组件可以很简单的被scheduler执行,下面是job接口:

 

quartz框架分析(二)

 

如上,你会看到job触发器出发时,jobexecute方法会被执行。那么,schedulerjob是通过何种方式创建和执行的呢。先来看看job的部署,job是通过jobdetail scheduler到框架中去的,然后通过getJobClass()方法获取到job实现类的class字节码的,通过jobFactorynewJob()方法反射出Java 的具体实例,然后在JobRunShell线程对象的run方法中执行。

1、  先看看jobdetail的创建,在quartz2.0中,jobdetail是通过jobbuilder创建

quartz框架分析(二)

Jobbuilder通过静态方法newjob()不同重载来创建Jobbuilder,通过withIdentity()重载设置参数,如下:

 quartz框架分析(二)

quartz框架分析(二)

 

2、  创建号jobdetail后,scheduler通过线程类JobRunShell来执行Job

通过initialize方法中调用JobFactorynewJob()创建Job实例。

 quartz框架分析(二)

JobFactorynewJob()方法通过反射使用默认无参数的构造方法实现job实例创建,如下:quartz框架分析(二)

 

Job的执行很简单,直接调用execute方法即可,以下代码省略中间检查部分:

quartz框架分析(二)

Job的实现和执行很简单, 主要是业务逻辑,以下简单的把类之间的关系整理下:

quartz框架分析(二)

你可能感兴趣的:(quartz)