使用Quartz实现任务调度和调度管理
Quartz是Java里流行的一种开源任务调度框架。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样简单复杂的日程表。
Quartz是Java里流行的一种开源任务调度框架。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样简单复杂的日程表。Jobs可以做成标准的Java组件或 EJBs。本文会先大概介绍一下如何使用Quartz,然后重点是介绍实际项目里,通过二次开发,增加任务调度的可管理性和异常处理,使它具备一定的商业任务调度框架的功能(参考此文:http://www.fluxcorp.com/products/flux/technical/quartz.html)
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(); } } } |
如以下即指定每天早上六点
| CronTrigger cronTrigger = new CronTrigger("triggerName", "triggerGroup");
try { CronExpression cexp = new CronExpression("0 6 * * * "); cronTrigger.setCronExpression(cexp); } catch (Exception e) { e.printStackTrace(); } |
| SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler(); JobDetail job = new JobDetail("jobName", "groupName", SimpleJob.class); Scheduler.scheduleJob(job, cronTrigger); |
- 本文关键词:

