定时任务(如:定时发送短信邮箱等)
前面整过一个任务调度,它是固定在每天几点等执行,对于要手动加入的时间的定时发送短信不适用。
学习quartz首先了解三个概念:
调度器:负责调度作业和触发器;
触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)
作业:定时任务内容,被执行的程序;
下载必要的jar包,将quartz-x.x.x.jar 和core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中 Quartz的几个核心的接口和类为:
Job接口:自己写的“定时程序”实现此接口的void execute(JobExecutionContext
arg0)方法,Job还有一类为有状态的StatefulJob接口,假如我们需要在上一个作业执行完后,根据其执行结果再进行下次作业的执行,则需要
实现此接口。
Trigger抽象类:调度类(Scheduler)在时间到时调用此类,再由trigger类调用指定的定时程序。
Quertz中提供了两类触发器为:SimpleTrigger,CronTrigger。前者用于实现比较简单的定时功能,例如几点开始,几点结束,隔
多长时间执行,共执行多少次等,后者提供了使用表达式来描述定时功能,因此适用于比较复杂的定时描述,例如每个月的最后一个周五,每周的周四等。
JobDetail类:具体某个定时程序的具体描述,包括Name,Group,JobDataMap等。
JobExecutionContext类:定时程序执行的run-time的上下文环境,用于得到当前执行的Job的名字,配置的参数等。
JobDataMap类:用于描述一个作业的参数,参数可以为任何基本类型例如String,float等,也可为某个对象的引用.
JobListener,TriggerListener接口:用于监听触发器状态和作业扫行状态,在特写状态执行相应操纵。
JobStore类:在哪里执行定进程序,可选的有在内存中,在数据库中。
开始:边看例题边学习,首先从简单触发器开始…… 1、作业通过实现org.quartz.job接口,可以使 Java
类变成可执行的。这个类用一条非常简单的输出语句覆盖了execute(JobExecutionContext context)方法。 import
java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class SimpleQuartzJob implements Job {
public SimpleQuartzJob() {
}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("In SimpleQuartzJob - e