怎样使用Quartz实现任务调度和调度管理?
Quartz是Java里流行的一种开源任务调度框架。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样简单复杂的日程表。Jobs可以做成标准的Java组件或 EJBs。 本文会先大概介绍一下如何使用Quartz,然后重点是介绍实际项目里,通过二次开发,增加任务调度的可管理性和异常处理,使它具备一定的商业任务调度框架的功能
Quartz要求一个任务必须实现接口Job的execute方法,如下一个简单的Job:
import java。 util。Date;
import org。quartz。Job;
import org。quartz。JobExecutionC...全部
Quartz是Java里流行的一种开源任务调度框架。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样简单复杂的日程表。Jobs可以做成标准的Java组件或 EJBs。
本文会先大概介绍一下如何使用Quartz,然后重点是介绍实际项目里,通过二次开发,增加任务调度的可管理性和异常处理,使它具备一定的商业任务调度框架的功能
Quartz要求一个任务必须实现接口Job的execute方法,如下一个简单的Job:
import java。
util。Date;
import org。quartz。Job;
import org。quartz。JobExecutionContext;
import org。quartz。JobExecutionException;
public class SimpleJob implements Job {
public SimpleJob() {
}
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
Thread。
sleep(1000*20);
} catch (InterruptedException e) {
e。printStackTrace();
}
}
}
Quartz将任务和时间触发分开,因此,你还需要指定时间触发,通常采用Cron方式,如每天早上六点,也可以指定某个固定时间,如2008年8月8号等。
如以下即指定每天早上六点
CronTrigger cronTrigger = new CronTrigger("triggerName", "triggerGroup");
try {
CronExpression cexp = new CronExpression("0 6 * * * ");
cronTrigger。
setCronExpression(cexp);
} catch (Exception e) {
e。
printStackTrace();
}
Scheduler 类负责将时间触发指定给JobDetail,简单的来说JobDetail封装了你的任务,并可以提供任务名,所属组,以及附加的一些参数。收起