【黑马程序员济南校区】Quartz的使用

 【黑马程序员济南】Quartz的使用

1. 简介

Quartz是一个处理定时任务的开源框架在我们开发过程中,比如定期清理过期的任务都会使用到。它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或EJBs。

2. Quartz的执行流程如下

1、org.quartz.Job它是一个抽象接口,表示一个工作,也就是我们要执行的具体内容,他只定义了一个几口方法:

void execute(JobExecutionContext context)

作用等同Spring的:

org.springframework.scheduling.quartz.QuartzJobBean

 2、org.quartz.JobDetail

JobDetail

表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,它包含了这个任务调度的方案和策略。他的实现类:

org.quartz.impl.JobDetailImpl

作用等同Spring:

org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean

3、org.quartz.Trigger它是一个抽象接口,表示一个调度参数的配置,通过配置它,来告诉调度容器什么时候去调用JobDetail。他的两个实现类:

org.quartz.impl.triggers.SimpleTriggerImpl

org.quartz.impl.triggers.CronTriggerImpl

等同于Spring的:

org.springframework.scheduling.quartz.SimpleTriggerBean

org.springframework.scheduling.quartz.CronTriggerBean

前者只支持按照一定频度调用任务,如每隔30分钟运行一次。后者既支持按照一定频度调用任务,又支持定时任务。

4、org.quartz.Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。它的方法有start()、shutdown()等方法,负责管理整个调度作业。等同Spring的:org.springframework.scheduling.quartz.SchedulerFactoryBean

3.1入门案例

本案例基于quartz和spring整合应用

3.1.1第一步:创建maven工程,继承common_parent,在pom文件中引入quartz的坐标


【黑马程序员济南校区】Quartz的使用_第1张图片

3.1.2第二步:创建一个自定义Job


3.1.3第三步:提供spring配置文件,配置定时任务


       "myJob"class="cn.itcast.jobs.MyJob">



       "jobDetail"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">


              "targetObject"ref="myJob"/>


              "targetMethod"value="sendMsg"/>




       "myTrigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

              "jobDetail"ref="jobDetail"/>


              "cronExpression">


                     0/5 * * * * ?





       "org.springframework.scheduling.quartz.SchedulerFactoryBean">

              "triggers">

                    

                            "myTrigger"/>

3.1.4第四步:加载上面的spring文件,创建spring工厂

4.在项目中使用Quartz创建定时任务发送邮件

4.1第一步:在项目中引入quartz的坐标

4.2第二步:自定义Job,用于定时发送邮件

4.3第三步:在spring配置文件中注册

       "myJob"class="cn.itcast.bos.web.jobs.OrderJob">

    "jobDetail"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

              "targetObject"ref="myJob"/>

              "targetMethod"value="sendMail"/>       "myTrigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

              "jobDetail"ref="jobDetail"/>

              "cronExpression">

                     0/10 

       "org.springframework.scheduling.quartz.SchedulerFactoryBean">

              "triggers">

                "myTrigger"/>



【黑马程序员济南】小鲁哥哥全学科技术整合帖(一贴在手!天下我有!)

如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!

     黑马程序员济南中心联系电话:0531-55696830

你可能感兴趣的:(【黑马程序员济南校区】Quartz的使用)