在web应用中指定时间自动执行任务
1、web监听器
?
package test;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class ContextListener implements ServletContextListener {//定时器Timer timer = null;//销毁public void contextDestroyed(ServletContextEvent event) {timer.cancel(); event.getServletContext().log("定时器以销毁");}//初始化public void contextInitialized(ServletContextEvent event) {timer = new Timer();event.getServletContext().log("定时器已启动");//设置在每晚19:15分执行任务Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 19);calendar.set(Calendar.MINUTE, 16);calendar.set(Calendar.SECOND, 0);Date date = calendar.getTime();timer.schedule(new Task(),date); event.getServletContext().log("已经添加任务调度表"); }}?
?
2、具体任务实现类
?
package test;import java.util.Date;import java.util.TimerTask;/** * 具体任务 */public class Task extends TimerTask {private static boolean isRunning = false;@Overridepublic void run() {if (!isRunning) {isRunning = true;System.out.println("开始执行........."+new Date());isRunning = false;}else{System.out.println("上次任务还没执行完");}}}?
3、配置监听器
?
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><!-- 定时监听器 --><listener> <listener-class>test.ContextListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
?
?
?
文章来源:http://techpool.iteye.com/blog/505885