11
2016-07-03
二、 HelloWorld实例
在上面的讲解之后,相信大家对Job的调度有了一定的理解,那么我们就用一个简单的实例来给大家梳理一下整个流程,加深一下大家的印象。
因为Trigger有两种形式,也就是SimpleTrigger和CronTrigger,而CronTrigger能处理更加复杂的时间表达格式,它的使用范围更大,所以这里我们以CronTrigger为例:
1) 首先,点击项目页面上的任务详情,我们可以看到对Job进行管理的界面,点击新
建Cron任务或简单任务,我们就可以在弹出窗口上完善我们的Job信息;
2) 在Job信息的完善页面,补充我们需要的相应信息来生成一个完善的JobCreateDto;
Hap框架定时调度器入门
File Ref: Hap框架定时调度器入门.docx (v. 1 )
CompanyConfidential - For internal use only
12
2016-07-03
在上图我们可以看到我们在新建Cron任务页面上填写任务类名,就是对应这里的后台HelloWorldJob,这个类继承了我们框架中封装好的AbstractJob,也就是实现了Job接口,证明这是一个可以被调度的Job类,而这个类的作用也很简单,就是在控制台通过logger来打印一句话而已。
3) JobCreateDto生成完成之后,我们就会在后台进行JobDetail的生成,具体方法
可以参见com.hand.hap.job.service.impl中QuzrtzServiceImpl的CreateJob方法:
Hap框架定时调度器入门
File Ref: Hap框架定时调度器入门.docx (v. 1 )
CompanyConfidential - For internal use only
13
2016-07-03
Hap框架定时调度器入门
File Ref: Hap框架定时调度器入门.docx (v. 1 )
CompanyConfidential - For internal use only
14
2016-07-03
4) JobDetail和Trigger完成在Schedule中的作业注册后,JobDetail就会自动根据
相应的Trigger来运行;
绿色的Job任务代表该任务正在执行中,我们可以在控制台中看到这个Job的相关信息,上图中的红框就是我们Job中打印的一句话。在这需要和大家说明一下,当我们完成一个Job的创建后,这个Job就会马上被执行一次,之后才会匹配我们定义的Trigger来执行。同时,我们每一个Job的执行,都会有一个监听器来对这个Job进行监听,也就是JobRunningListener,感兴趣的童鞋可以去研究一下。(ps:当我们在后台创建完一个线程后,可以在前台直接将这个Job挂起,不用再次重启服务。)
另外在项目中quartz.properties文件定义了Quartz应用运行时行为,还包含了许多能控制Quartz运转的属性。它应放在工程的classpath中。童鞋们可以看一看。
Hap框架定时调度器入门
File Ref: Hap框架定时调度器入门.docx (v. 1 )
CompanyConfidential - For internal use only
15
2016-07-03
Hap框架定时调度器入门
File Ref: Hap框架定时调度器入门.docx (v. 1 )
CompanyConfidential - For internal use only
HAP框架-定时调度器使用手册



