package org.wlkj.servlet;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TaskManager implements ServletContextListener {
/**
* 每天的毫秒数
*/
public static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
/**
* 一周内的毫秒数
*/
public static final long PERIOD_WEEK = PERIOD_DAY * 7;
/**
* 无延迟
*/
public static final long NO_DELAY = 0;
/**
* 定时器
*/
private Timer timer;
/**
* 在Web应用启动时初始化任务
*/
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
timer.cancel(); // 定时器销毁
}
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
//定义定时器
timer = new Timer("数据库表备份",true);
//启动备份任务,每月(4个星期)执行一次
timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_DAY);
// timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
}
}
package org.wlkj.servlet;
import java.util.TimerTask;
public class BackUpTableTask extends TimerTask {
private static boolean isRunning = false;
@Override
public void run() {
// TODO Auto-generated method stub
if (!isRunning) {
isRunning = true;
System.out.println(": 开始执行任务..."); //开始任务
//working add what you want to do
System.out.println(": 执行任务完成..."); //任务完成
isRunning = false;
} else {
System.out.println("上一次任务执行还未结束..."); //上一次任务执行还未结束
}
}
}
web.xml文件
<listener>
<listener-class>org.wlkj.servlet.TaskManager</listener-class>
<description>要定期执行的任务</description>
</listener>
呵呵!
web服务器定制执行任务
最新推荐文章于 2024-11-04 16:30:04 发布
本文介绍了一个用于Web应用中的定时任务管理系统,通过Java Servlet实现,能够定期执行指定任务,例如数据库表备份。该系统利用了Java Timer进行调度,并在web.xml中配置监听器确保任务随Web应用启动。
2727

被折叠的 条评论
为什么被折叠?



