<%@ page contentType="text/html; charset=gb2312"%> Web应用下实现定时任务的简便方法
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Web应用下实现定时任务的简便方法
     发布者: 发布时间:2007-07-10

 在WEB应用下实现定时任务的简便方法内容来自中国站长资讯网(www.chinahtml.com)

  在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务:内容来自中国站长资讯网(www.chinahtml.com)

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

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

public class BackUpTableTask extends TimerTask { tNm站长资讯
 private static Log log = LogFactory.getLog(BackUpTableTask.class); tNm站长资讯
 private static boolean isRunning = false; tNm站长资讯
 public void run() { tNm站长资讯
  if (!isRunning) { tNm站长资讯
   isRunning = true; tNm站长资讯
   log.debug("开始执行任务..."); //开始任务 tNm站长资讯
   //working  add what you want to do tNm站长资讯
   log.debug("执行任务完成..."); //任务完成 tNm站长资讯
   isRunning = false; tNm站长资讯
  } else { tNm站长资讯
   log.debug("上一次任务执行还未结束..."); //上一次任务执行还未结束 tNm站长资讯
  } tNm站长资讯
 } tNm站长资讯
} tNm站长资讯
  第三步:在web中添加一个监听器

 <listener>tNm站长资讯
  <listener-class>***.TaskManager</listener-class>tNm站长资讯
  <description>要定期执行的任务</description>tNm站长资讯
 </listener> tNm站长资讯
  那么在web服务器启动的时候,任务也被启动,并且会周期性的执行tNm站长资讯

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
JSP结合XML+XSLT将输出转换HTML
简述构建高性能J2EE应用的五种核心策略
用XML+JSP实现网页内容动态显示的方案
解决J2EE系统应用性能问题常用优化项目
新手入门:写Java程序的三十个基本规则
Java开源技术:Eclipse的使用技巧详解
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(9572)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(8017)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(5414)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(6002)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号