1.下载Quartz2.1.5的jar包
注意:不同版本的jar包有差异
2.官网文档
3.实现Job接口,这里编写的代码是你需要定时器为你做的工作
import java.util.Date;
import java.util.logging.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 执行工作
* @author cjh
*
*/
public class ExecuteJob implements Job{
private static final Logger logger = Logger.getLogger(ExecuteJob.class.getName());
/**
* 实现job接口方法
*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
//调用描类
logger.info("定时器调用..."+new Date());
}
}
4.定时器,通过这个定时器去高度你的工作
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule;
/**
* 定时器
*
* @author cjh
*
*/
public class JobQuartz {
/**
* 工作
*
* @throws SchedulerException
*
* @throws SchedulerException
*/
public static void task() throws SchedulerException {
// 通过StdSchedulerFactory获得一个Scheduler实例
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
// 使用org.quartz.JobBuilder类的newJob构造一个JobDetail对象
JobDetail job = newJob(ExecuteJob.class).withIdentity("job1", "group1")
.build();
// 使用org.quartz.TriggerBuilder类的newTrigger构造一个Trigger对象
//(通过org.quartz.CronScheduleBuilder类的cronSchedule添加表达式)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 0/1 * * * ? *"))
.forJob("job1","group1")
.build();
//调度器使用的job和trigger
sched.scheduleJob(job, trigger);
//启动调度器
sched.start();
}
public static void main(String[] args) {
try {
JobQuartz.task();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
5.如果是web程序需要初始化定时器,通过Listener初始化
import java.util.logging.Logger;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.SchedulerException;
/**
* 定时器监听器
* @author 3qinbo
*
*/
public class QuartzListener implements ServletContextListener {
private static final Logger logger = Logger.getLogger(QuartzListener.class.getName());
/**
* 销毁
*/
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
/**
* 初始化
*/
@Override
public void contextInitialized(ServletContextEvent arg0) {
logger.info("QuartzListener监听器初始化...");
try {
JobQuartz.task();
} catch (SchedulerException e) {
logger.warning("定时器监听器初始化出错...");
e.printStackTrace();
}
}
}
6.在web.xml中注册监听器
<!-- 定时器监听器 -->
<listener>
<listener-class> com.egeniuss.jxibs.manage.io.timer.QuartzListener</listener-class>
</listener>
7.本程序还需要添加其它的jar包请自行添加