Quartz

来源:互联网 发布:翻译证书 知乎 编辑:程序博客网 时间:2024/06/11 07:53

-- Start

Quartz 简介

Quartz 是一个开源的任务调度框架。

 

下载 Quartz

你可以在 Google 中搜索 Quartz,然后到官网去下载最新的 Quartz 发行包。然后将 quartz-all-xxx.jar 添加到自己的 classpath 中,另外,由于 Quartz 本身依赖于一些第三方的组件,所以我们也需要将 lib 目录下的 jar 包也添加到 classpath 中。

 

一个简单的例子 

import java.util.Date;import org.quartz.DailyTimeIntervalScheduleBuilder;import org.quartz.Job;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.Trigger;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;public class Test {public static void main(String[] args) throws Exception {try {// 获得调度器Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();// 启动调度器scheduler.start();// 定义任务JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("HelloWorldJob", "defaultGroup").build();// 定义触发器Trigger trigger = TriggerBuilder.newTrigger().withIdentity("HelloWorldJob", "defaultGroup").withSchedule(DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule().withIntervalInSeconds(5) // 5 秒执行1次.withRepeatCount(3)) // 重复3次,共执行4次.startNow() // 立即启动.build();// 调度任务scheduler.scheduleJob(job, trigger);// 关闭调度器Thread.sleep(30 * 1000); // 等待 30 秒scheduler.shutdown();} catch (SchedulerException se) {se.printStackTrace();}}public static class HelloJob implements Job {public void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Hello World! - " + new Date());}}}


更多例子

Quartz 的功能非常丰富,如果你熟悉 Linux 的 crontab 服务,那么你就可以利用 CronTrigger 来定义任务。如果你想让一个任务依赖与另一个任务,那么你就可以利用 JobListener 来达到目的,在 Quartz 发行包的examples文件夹下,你可以找到更多的例子。

 

-- 更多参见:Open Source 精萃
-- 声 明:转载请注明出处
-- Last Updated on 2012-08-16
-- Written by ShangBo on 2012-07-28
-- End

 

原创粉丝点击