Quartz是一个Java实现的开源任务调度框架,它简单、易用。既可在单机J2SE应用中使用,也可在web应用中使用。
下载地址:http://www.opensymphony.com/quarz/download.action,quarz现在最新的版本是1.6。
如果需要在web应用中使用Quartz,只需将quartz-1.6.jar or quartz-all-1.6.jar文件复制到WEB-INF的lib目录下即可。
一. Quarz的配置文件quartz.properties的介绍
将该文件放在Wen应用的src目录下,使用举例如下:
# 配置主调度属性
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
# 配置线程池
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
# 配置线程池的线程数量
org.quartz.threadPool.threadCount = 5
# 配置线程池里线程的优先级
org.quartz.threadPool.threadPriority = 5
# 配置作业存储
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
二. Quarz中的作业使用举例
三. Quarz里的调度器使用举例
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util. * ;
public class TestJob implements Job
... {
public void execute(JobExecutionContext context) throws JobExecutionException
...{
System.out.println(new Date() +" 作业调度开始。");
for (int i = 0; i < 100 ; i++)
...{
System.out.println("作业完成" + i + 1 + "%");
}
System.out.println(new Date() +" 作业调度结束。");
}
}
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.JobDetail;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
public class MyQuartzServer
... {
public static void main(String[] args)
...{
MyQuartzServer server = new MyQuartzServer();
try
...{
server.startScheduler();
}
catch (SchedulerException ex)
...{
ex.printStackTrace();
}
}
protected void startScheduler() throws SchedulerException
...{
//使用工厂创建调度器实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//以作业创建JobDetail实例
JobDetail jobDetail = new JobDetail("dd", Scheduler.DEFAULT_GROUP,TestJob.class);
//创建trigger
Trigger trigger = new SimpleTrigger("dd",Scheduler.DEFAULT_GROUP, 5000, 200) ;
//调度器将作业与trigger关联起来
scheduler.scheduleJob(jobDetail, trigger );
//开始调度
scheduler.start();
}
}