监听,定时器

来源:互联网 发布:淘宝售后客服具体工作 编辑:程序博客网 时间:2024/06/13 23:54

1.web.xml  配置

<listener>
<listener-class>
tool.TimerListener
</listener-class>
</listener>

2.监听器类的配置

package tool;


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;


import jxl.common.Logger;


public class TimerListener extends HttpServlet implements ServletContextListener {
private static final long serialVersionUID = 200601509800003l;


private static Logger log = Logger.getLogger(TimerListener.class);


/**
* 初始化定时任务线程

* @param sce
*            ServletContextEvent
*/
public void contextInitialized(ServletContextEvent sce) {
log.info("TimerListener[ServletContextListener] initializing...");
try {
BatchMain.getInstance().startTask();
} catch (Exception e) {
}
log.info("...TimerListener[ServletContextListener] initialized");
}


/**
* 销毁定时任务线程

* @param sce
*            ServletContextEvent
*/
public void contextDestroyed(ServletContextEvent sce) {
log.info("TimerListener[ServletContextListener] destoring...");
BatchMain.getInstance().destoryTask();
log.info("...TimerListener[ServletContextListener] destoried.");
}
}
3、 执行类的配置

package tool;


import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


import jxl.common.Logger;


public class BatchMain {
private static Logger log = Logger.getLogger(BatchMain.class);


private static BatchMain instance;


// 任务调度定时器
private Timer timer;


private BatchMain() {
timer = new Timer();
}


public synchronized static BatchMain getInstance() {
if (instance == null) {
instance = new BatchMain();
}
return instance;
}


/**
* 启动指定任务线程

*/
public void startTask() {

Calendar calendar = Calendar.getInstance();  
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
calendar.set(year, month, day, 23, 10, 00);  
Date date = calendar.getTime(); 



 Timer timer = new Timer(); 
 System.out.println(System.currentTimeMillis());
if (date.getTime()<System.currentTimeMillis()){
System.out.println("小于当前时间"+date.getTime());
}
else{
System.out.println("大于当前时间"+date.getTime());
}
timer.schedule(new SchemeCancelTask(), 0, 24*60*60*1000);








}


/**
* 启动指定任务线程

*/
public void destoryTask() {
log.info("BatchMain startTask canceling...");
timer.cancel();
}
}
4;定时器任务类的配置:

package tool;


import java.util.*;


import jxl.common.Logger;


public class SchemeCancelTask extends TimerTask {


private static Logger log = Logger.getLogger(SchemeCancelTask.class);


public SchemeCancelTask() {


}


public void run() {
try {
String  xn = CommonInfo.getCurrentXn();
String  xq=CommonInfo.getCurrentXq();
String[] str = { "一", "二", "三", "四", "五", "六", "七", "八", "九" };
String xnxq = xn+"第"+str[Integer.parseInt(xq)-1]+"学期";
String sql = "update hp_xkshezhi set xnxq=?";
String[] params = {xnxq};

DB dao = new DB();
dao.executeUpdate(sql, params);
dao.closeConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}




         


}

}

0 0