今天项目要做一个功能,每天晚上在1点,自动读取另一台服务器上的数据;由于不想使用timer,听说quartz不错,不会正好学习一下,咋的,用用呗!孩儿立志出乡关,代码不成誓不还!遥问洒家何时睡,每天都到12点!由于工程用了jdk1.5,下载最新的quartz-2.2.3无法使用,木办法只好用了quartz-1.8.6,由于我用的功能比较简单,没有很多的要求,例子一拷贝,成了!
一、导入jar包
quartz-1.8.6.jar、quartz-all-1.8.6.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.6.0.jar
二、新建类
package com.erp.util;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class QuartzJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
String jobName = arg0.getJobDetail().getFullName();
System.out.println(jobName + "执行时间为:"+new DatesFormat().getNowDate());
/**
实际操作业务,例如从一台数据库服务器中读取数据插入另一台数据库服务器中
**/
}
}
三、新建QuartzInitializerServlet类,我们不使用quartz自带的servlet,因为我们要在servlet中实现自动读取业务
package com.erp.cmd.sales.inOutDbf;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import com.erp.util.QuartzJob;
public class QuartzInitializerServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public QuartzInitializerServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy();
}
@Override
public void init() throws javax.servlet.ServletException {
System.out.println("Quartz 初始化开始, initializing Scheduler...");
try {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.start();
JobDetail job = new JobDetail("job1", "group1", QuartzJob.class);
/**
在每天的1点启动任务
**/
CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1","group1", "0 0 1 * * ?");
sched.scheduleJob(job, trigger);
System.out.println(job.getFullName() + "执行了");
} catch (Exception e) {
System.out.println("Quartz Scheduler failed to initialize: " + e.toString());
throw new ServletException(e);
}
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
}
}
四、在web.xml中添加
<servlet>
<servlet-name>QuartzInitializerServlet</servlet-name>
<servlet-class>com.erp.cmd.sales.inOutDbf.QuartzInitializerServlet</servlet-class>
<load-on-startup>2</load-on-startup><!--自启动-->
</servlet>
quartz1.8+jdk1.5入门学习
最新推荐文章于 2019-12-03 22:37:39 发布