设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: 刺猬宫 >> 网络编程 >> JSP >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
新手入门:AJAX应用需要…
技巧:Java中用动态代理…
Java资料:Swing中的事件…
将XML结点转换成JAVABEA…
Java编程中更新XML文档的…
技巧:javascript与…
Java会因为RoR的流行而过…
新手入门:Java语言完成…
简单介绍Java实时应用程…
新手入门:Java中的修饰…
  Java知识:Web应用下实现定时任务简便方法           
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服务器启动的时候,任务也被启动,并且会周期性的执行。

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-7-13 15:45:50
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持