web服务器定制执行任务

本文介绍了一个用于Web应用中的定时任务管理系统,通过Java Servlet实现,能够定期执行指定任务,例如数据库表备份。该系统利用了Java Timer进行调度,并在web.xml中配置监听器确保任务随Web应用启动。

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>

呵呵!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值