dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>文章内容
Web应用下实现定时任务的简便方法
来源: 作者:
在WEB应用下实现定时任务的简便方法

  在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务:

  第一步:创建一个任务管理类,实现ServletContextListener 接口

以下是引用片段:
public class TaskManager implements ServletContextListener {
 /**
  * 每天的毫秒数
  */
 public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
 /**
  * 一周内的毫秒数
  */
 public static final long PERIOD_WEEK = PERIOD_DAY * 7;
 /**
  * 无延迟
  */
 public static final long NO_DELAY = 0;
 /**
  * 定时器
  */
 private Timer timer;
 /**
  * 在Web应用启动时初始化任务
  */
 public void contextInitialized(ServletContextEvent event) {
        //定义定时器
  timer = new Timer("数据库表备份",true);
  //启动备份任务,每月(4个星期)执行一次
  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
 }
 /**
  * 在Web应用结束时停止任务
  */
 public void contextDestroyed(ServletContextEvent event) {
  timer.cancel(); // 定时器销毁
 }
}
第二步:创建一个时间任务类

以下是引用片段:
public class BackUpTableTask extends TimerTask {
 private static Log log = LogFactory.getLog(BackUpTableTask.class);
 private static boolean isRunning = false;
 public void run() {
  if (!isRunning) {
   isRunning = true;
   log.debug("开始执行任务..."); //开始任务
   //working  add what you want to do
   log.debug("执行任务完成..."); //任务完成
   isRunning = false;
  } else {
   log.debug("上一次任务执行还未结束..."); //上一次任务执行还未结束
  }
 }
}

  第三步:在web中添加一个监听器

以下是引用片段:
 <listener>
  <listener-class>***.TaskManager</listener-class>
  <description>要定期执行的任务</description>
 </listener>

  那么在web服务器启动的时候,任务也被启动,并且会周期性的执行


上一篇:128M内存如何安装并使用卡巴斯基7.0   下一篇:解决JSP开发Web程序中文显示三种方法
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·java自学路线图
·JSP入门实例教程
·JUnit单元测试(2)
·JUnit单元测试(1)
·什么是Servlet
·用AJAX+J2EE实现网上会议室系统
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·构造器内部的多态方法的行为
·JSP常用内置对象使用说明
·对于JAVA基础测试中常见的异常问
  相关文章
·解决JSP开发Web程序中文显示三种
·实例讲解Servlet的图象处理
·JVM(Java 虚拟机)的详细讲解
·基于Java的界面布局DSL的设计与
·浅谈Java中利用JCOM实现仿Excel
·Java技术在多数据库系统中的应用
·为Java程序中添加播放MIDI音乐功
·提升JSP页面响应速度的七大秘籍
·Spring中事件处理的小技巧
·Java实现利用搜索引擎收集网址的
·Java SE 6新特性:Instrumentatio
·Java SE 6 新特性: HTTP 增强
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763