1、Job
表示一个任务(工作),要执行的具体内容。
2、JobDetail JobDetail
表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要 执行的内容,另外
JobDetail 还包含了这个任务调度的方案和策略。
告诉调度容器,将来执行哪个类(job)的哪个方法
3、Trigger
是一个类,代表一个调度参数的配置,描述触发Job执行的时间触发规则。
一个Job可以对应多个Trigger,但一个Trigger只能对应一个Job
4、Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和Trigger。
Scheduler可以将Trigger绑定到某一JobDetail中,这样当Trigger触发时,对应的Job就被执行。
Note: 当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。
二、入门Demo
1、创建Demo工程,加入依赖
2、加入依赖
<project xmlns=“http://maven.apache.org/POM/4.0.0”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
com.itzheng
JavaMailDemo
0.0.1-SNAPSHOT
org.springframework
spring-context-support
4.2.4.RELEASE
org.springframework
spring-tx
4.2.4.RELEASE
org.quartz-scheduler
quartz
2.2.3
3、创建JobTest类,代码如下
4、配置文件
添加applicationContext_job.xml文件
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id=“jobDetail”
class=“org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”>
<bean id=“mailTrigger”
class=“org.springframework.scheduling.quartz.CronTriggerFactoryBean”>
<bean id=“startQuartz”
class=“org.springframework.scheduling.quartz.SchedulerFactoryBean”>
5、测试
创建测试类QuartzTest,注:不能使用junit做测试,因为一运行完,程序就结束了。
6、运行结果(每隔10秒执行一次)
三、相关概念
1、表达式cron详解
Cron 表达式是一个字符串,字符串以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义。也叫七子表达式。
2、域
1)Seconds(秒):可出现"
, - * /
"四个字符,有效范围为 0-59 的整数
2)Minutes(分钟):可出现"
, - * /
"四个字符,有效范围为 0-59 的整数
3)Hours(小时):可出现"
, - * /
"四个字符,有效范围为 0-23 的整数
4)DayofMonth(日 of 月):可出现"
, - * / ? LW C
"八个字符,有效范围为1-31
的整数