1、所用Quartz框架,所需引入:
quartz-1.6.5.jar
2、Java程序使用Quartz
- 首次,定义任务类实现Job接口,实现其execute()方法
public class JavaJobimplements Job {
public void execute(JobExecutionContext context) throwsJobExecutionException {
Stringname=context.getJobDetail().getJobDataMap().getString("name");
System.out.println("job excuting .."+name);
}
}
1、创建定时任务的描述对象JobDetail;
2、创建触发器SimpleTrigger,例如:执行10次,每三秒执行一次
3、创建定时器Scheduler;
4、将定时任务加入定时器中;
5、启动定时器开始执行任务。
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class Test {
public static void main(String[] args) throws SchedulerException{
Test test=new Test();
//创建任务
JobDetailjobDetail=newJobDetail("javaJob",Scheduler.DEFAULT_GROUP,JavaJob.class);
//创建触发器 间隔3秒执行10次
SimpleTrigger trigger=newSimpleTrigger("test",null,10,3000);
//创建任务调度器
Schedulersheduler=StdSchedulerFactory.getDefaultScheduler();
//将任务与触发器装载到调度器内
sheduler.scheduleJob(jobDetail, trigger);
//启动调度器
sheduler.start();
}
}
3、web应用中使用Quartz
- Quartz在web应用中提供了QuartzInitializerServlet,用于在web加载时对Quartz进行初始化
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>