我也刚开始学习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的版本不行

解决方案 »

  1.   

    这个问题解决了……
    但是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>