首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言板
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [学习辅导]用Java的加密机制来保护你…
· [学习辅导]如何开发、调试和测试EJB3…
· [学习辅导]Java会因为RoR的流行而过时…
· [学习辅导]谈java的导入(import)
· [学习辅导]Java程序开发中代理技术的…
· [学习辅导]如何利用JAVA实现斐波那契…
· [学习辅导]Java:Web应用下实现定时任…
· [学习辅导]Java程序把Word文档直接换…
· [备考指南]Java开发技术十年回顾与展…
· [备考指南]EasyJWeb-0.8.0版本发布
 精品课程
· [医卫类精品课程]名师主讲口腔执业医师…
· [精品课程推荐]公务员考试权威专家网…
· [医卫类精品课程]中医执业医师考试网上…
· [医卫类精品课程]临床助理医师网络辅导…
· [工程类精品课程]公路监理工程师考试网…
· [医卫类精品课程]执业药师考试网上辅导…
· [医卫类精品课程]名师执业医师考试网上…
· [工程类精品课程]物业管理师考试名师团…
· [财经类精品课程]名师主讲会计从业资格…
· [工程类精品课程]城市规划师考试名师在…
 考试动态
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
· [二级考试动态]2007年下半年计算机等级考…
· [二级考试动态]天津:2007年下半年全国计…
· [二级考试动态]计算机技术与软件专业技术…
· [二级考试动态]2007年计算机等级考试改期…
· [二级考试动态]河北07计算机考点出故障考…
· [二级考试动态]2007年贵州省计算机补考7月…
· [二级考试动态]了解考试系列:二级C语言的…
· [二级考试动态]了解考试系列:二级VC++语…
 试题下载
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]JavaSocket编程(二)
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年4月计算机等级考试二级…
· [试题下载]在局域网进行IP包捕获的一…
· [试题下载]动态链接库的创建和调用
· [试题下载]计算机等级考试二级C语言模…
 学习辅导
· [学习辅导]二级C语言考试辅导教程第二…
· [学习辅导]二级C辅导教程及考点分析:…
· [学习辅导]初学者编程入门:C语言指针…
· [学习辅导]二级C宏--智者的利刃,愚者…
· [学习辅导]二级C宏--智者的利刃,愚者…
· [学习辅导]等级考试二级C专家编程读书…
· [学习辅导]等级考试二级C专家编程读书…
· [学习辅导]全国等级考试二级详细解析…
 

Java:Web应用下实现定时任务的简便方法

文章录入:admin    责任编辑:admin   2007-7-30 14:46:25  来源:互联网  点击数:
 
        在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服务器启动的时候,任务也被启动,并且会周期性的执行

  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    设为首页 - 加入收藏 - 联系站长 - 友情链接 - 版权申明
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司    版权所有

    鄂ICP备05000022号