我也刚开始学习Quartz
我是这样写的
QuartzListener.javapackage test.quartz.listener;import java.text.ParseException;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;import org.quartz.SchedulerException;import test.quartz.TestScheduler;public class QuartzListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().log("启动Quartz定时器");
try {
TestScheduler.run();
} catch (SchedulerException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
event.getServletContext().log("已经添加调度任务");
} public void contextDestroyed(ServletContextEvent event) {
try {
TestScheduler.stop();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}TestScheduler.javapackage test.quartz;import java.text.ParseException;import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;public class TestScheduler {
private static SchedulerFactory schedulerFactory = new StdSchedulerFactory();
private static Scheduler scheduler = null;
public static void run() throws SchedulerException, ParseException{
if(null == scheduler)
//创建调度管理器
scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail("myjob", //name
Scheduler.DEFAULT_GROUP,//group
SimpleQuartzJob.class
);
//创建触发器
CronTrigger cronTrigger = new CronTrigger("mytrigger", "test","0/5 * * * * ?");
//添加到调度任务
scheduler.scheduleJob(jobDetail, cronTrigger);
//执行调度任务
scheduler.start();
}
public static void stop() throws SchedulerException{
scheduler.shutdown();
}
}
web.xml <listener>
<listener-class>test.quartz.listener.QuartzListener</listener-class>
</listener>可能会需要到commons-collections-3.x.jar
2.x的版本不行
我是这样写的
QuartzListener.javapackage test.quartz.listener;import java.text.ParseException;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;import org.quartz.SchedulerException;import test.quartz.TestScheduler;public class QuartzListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().log("启动Quartz定时器");
try {
TestScheduler.run();
} catch (SchedulerException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
event.getServletContext().log("已经添加调度任务");
} public void contextDestroyed(ServletContextEvent event) {
try {
TestScheduler.stop();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}TestScheduler.javapackage test.quartz;import java.text.ParseException;import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;public class TestScheduler {
private static SchedulerFactory schedulerFactory = new StdSchedulerFactory();
private static Scheduler scheduler = null;
public static void run() throws SchedulerException, ParseException{
if(null == scheduler)
//创建调度管理器
scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail("myjob", //name
Scheduler.DEFAULT_GROUP,//group
SimpleQuartzJob.class
);
//创建触发器
CronTrigger cronTrigger = new CronTrigger("mytrigger", "test","0/5 * * * * ?");
//添加到调度任务
scheduler.scheduleJob(jobDetail, cronTrigger);
//执行调度任务
scheduler.start();
}
public static void stop() throws SchedulerException{
scheduler.shutdown();
}
}
web.xml <listener>
<listener-class>test.quartz.listener.QuartzListener</listener-class>
</listener>可能会需要到commons-collections-3.x.jar
2.x的版本不行
但是scheduler.start();完成后
并没有定时执行excute方法,很是苦恼!
是job配置文件问题吗?
job.xml
<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
overwrite-existing-jobs="true">
<job>
<job-detail>
<name>quartzExcuteJob</name>
<group>group1</group>
<job-class>jco.QuartzExcuteJob</job-class>
</job-detail>
<trigger>
<cron>
<name>test</name>
<group>group1</group>
<job-name>quartzExcuteJob</job-name>
<job-group>group1</job-group>
<cron-expression>30 10 13 ? * 6</cron-expression>
</cron>
</trigger>
</job>
</quartz>