quartz1.8+jdk1.5入门学习

今天项目要做一个功能,每天晚上在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>

猜你喜欢

转载自zhangshufei8001.iteye.com/blog/2377264