关于quartz
1 下载quartz java包copy到web-inf/lib下
2 建立 scheduler初始化servlet
在web.xml里加入
<servlet>
<servlet-name>initializer</servlet-name>
<servlet-class>
com.nova.colimas.web.action.startupservlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
public class startupservlet extends httpservlet {
public void init(servletconfig cfg) throws
javax.servlet.servletexception {
initscheduler(cfg);
return;
}
protected void initscheduler(servletconfig cfg){
logger.info("quartz init servlet loaded, initializing scheduler...");
// start now
try{
// create an default instance of the scheduler
scheduler scheduler = stdschedulerfactory.getdefaultscheduler();
//将scheduler存入serlvet上下文。 cfg.getservletcontext().setattribute(constants.scheduler_key,scheduler);
}catch(exception e){
logger.error("quartz init servlet failed");
}
}
}
/**
* @author tyrone
*
* todo to change the template for this generated type comment go to
* window - preferences - java - code style - code templates
*/
public class batcheditaction extends action implements privilegedaction {
private static logger logger = null;
private scheduler scheduler=null;
public actionforward execute(actionmapping mapping,
actionform form,
httpservletrequest request,
httpservletresponse response)
throws exception{
actionmessages errors=new actionmessages();
logger = logger.getlogger(this.getclass());
//获得servlet上下文
servletcontext ctx =
request.getsession().getservletcontext();
//获得scheduler对象
scheduler=(scheduler)ctx.getattribute(constants.scheduler_key);
//根据form属性建立job
createjob(form);
try{
logger.info("scheduler starting up...");
//启动scheduler。
scheduler.start();
}catch(exception e){
logger.error("scheduler get error");
}
return mapping.findforward("success");
}
/**
* create a job based on form info.
* @param form
* @return
*/
protected void createjob(actionform form) throws exception{
batchinfoform batchinfo=(batchinfoform)form;
string classname=batchinfo.getfile();
simpletrigger strigger=null;
jobdetail jobdetail=null;
calendar cal=null;
//如果是一天一次的job
if (batchinfo.getfrequency().equalsignorecase("oncedaily")){
logger.info("batch run oncedaily");
cal = new annualcalendar();
//add calendar to the scheduler
/*
* setup a trigger to start firing now, with a null end date/time,
* repeat forever and have (hour*60+ minute)*60000 ms between each firing.
*/
//开始时间:11:45
string[] time=batchinfo.getdailystarttime().split(":");
java.util.calendar rightnow = java.util.calendar.getinstance();
rightnow.set(java.util.calendar.hour_of_day,new integer(time[0]).intvalue());
rightnow.set(java.util.calendar.minute,new integer(time[1]).intvalue());
//间隔24小时
long repeatinterval=24*60*60000;
strigger = new simpletrigger("trigger",
scheduler.default_group, rightnow.gettime(), null,
simpletrigger.repeat_indefinitely, repeatinterval);
}
}
// trigger 关联一个calendar, batchinfo.getname()唯一表示一个calendar
strigger.setcalendarname(batchinfo.getname());
scheduler.addcalendar(batchinfo.getname(), cal, true, true);
try{
//job类名为com.nova.colimas.job.test
jobdetail = new jobdetail(classname,
scheduler.default_group, class.forname(classname));
//job关联一个trigger,加入scheduler
scheduler.schedulejob(jobdetail, strigger);
}catch(classnotfoundexception ex){
logger.error(ex);
throw new exception();
}
return ;
}
}
package com.nova.colimas.job;
import org.apache.log4j.logger;
import org.quartz.job;
import org.quartz.jobexecutioncontext;
import org.quartz.jobexecutionexception;
public class test implements job {
private static logger logger = null;
public void execute(jobexecutioncontext arg0) throws jobexecutionexception {
// 定时运行。
logger = logger.getlogger(this.getclass());
logger.info("test job is running");
}
}
framework] 2005-08-23 11:45:29,440 - com.nova.colimas.job.test -215700 [defaultquartzscheduler_worker-0] info com.nova.colimas.job.test - test job is running
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器