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服务器启动的时候,任务也被启动,并且会周期性的执行。

时间: 2024-10-30 22:51:45

Java在Web应用下实现定时任务简便方法的相关文章

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

web|定时 在WEB应用下实现定时任务的简便方法 在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务: 第一步:创建一个任务管理类,实现ServletContextListener 接口 以下是引用片段: public class TaskManager implements ServletContextListener { /** * 每天的毫秒数 */ public static final

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

web|定时 在WEB应用下实现定时任务的简便方法 在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务: 第一步:创建一个任务管理类,实现ServletContextListener 接口 public class TaskManager implements ServletContextListener { /**  * 每天的毫秒数  */ public static final long P

用java在web环境下上传和下载文件的技巧_java

文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能. common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载. 用该组件可实现一次上传一个或多个文件,并可限制文件大小. 下载后解压zip包,将commons-fileupload-

VC下实现定时任务的方法讨论

实现定时任务无非就是想在未来的某一时刻执行一个任务,最先想到的就是WM_TIMER消息. 方法1:WM_TIMER消息无论是否是窗口函数都可以使用它 启动:SetTimer(HWND hWnd,UINT uID,UINT uElapse,TIMERPROC lpTimerFunc):停止:KillTimer(UINT uID): 在MFC中封装了上面的函数将HWND hWnd参数去掉即可. 有窗口将lpTimerFunc函数指针置为空否则写一个回调函数传进去即可,当经过了uElapse时就执行此

在Java的Struts框架下进行web编程的入门教程_java

当点击一个超链接或提交一个HTML表单在Struts2 的 Web应用程序,输入所收集被发送到一个Java类称为操作控制器.当动作执行后,结果选择了一个资源来呈现响应.资源通常是一个JSP,但它也可以是一个PDF文件,Excel电子表格,或一个Java applet 窗口. 假设已经建立开发环境.现在让我们继续为第一个 "Hello World" 的 struts2 项目构建.这个项目的目的是建立一个Web应用程序,它收集用户的姓名,并显示"Hello World"

Java的web应用lib下有很多jar包要依赖,可不可以把这些jar打成一个jar吗?

问题描述 Java的web应用lib下有很多jar包要依赖,可不可以把这些jar打成一个jar吗?打成一个jar会影响应用吗? 问题补充:to 蔡华江:啥意思吗,行还是不行 解决方案 引用不一定行.如果你要打包的话,需先将原来的jar解开,然后再打成1个jar包.有些jar包(比较少,一般加密用途的jar包会有)可能牵涉到数字签名的问题,解压后再打包可能会有问题.你可以试下,呵呵 我也有过这样的念头,但是没尝试过. 一般来说是不行的, 我就做过这样的事情.当时我们的一个WEB项目依赖了将近80个

web环境下 使用itext报java.lang.NoClassDefFoundError: com.lowagie.text.DocumentExceptio

问题描述 在web环境下使用itext生产pdf报错,在mian函数里面测试没有问题.java.lang.ClassNotFoundException:com.lowagie.text.DocumentExceptionatorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)atorg.apache.catalina.loader.WebappClassLoader.loadClas

在Java ME平台中使用Subversion、NetBeans IDE和Sun Java System Web Server

问题 源代码管理(SCM)产品用于管理多个版本的项目文件,允许您保存新版本.恢复较旧版本以及在不同版本之间进行比较.当您在修改项目的过程中引入了bug,这将是一个非常有价值的功能.大多数较新源代码管理(SCM)产品除了可管理各文件的版本之外,还提供了在 Bell 实验室中开发的源代码控制系统(SCCS). 即使对于小型项目,每一位开发人员也应该使用源代码管理(SCM).小型项目转变成大型项目是必然的事情,虽然从工作上说仅仅需要修复错误和添加功能.跟踪和管理软件的能力是获得成功的关键因素. 应用程

WEB环境下办公自动化文档修改痕迹保留的实现

web WEB环境下办公自动化文档修改痕迹保留的实现 一.痕迹保留的现状与思考 随着政府机关和许多企事业单位网络建设逐步完成,对于在如何利用网络,如何表现出网络的优势方面,用户最容易想到,同时也是最容易产生效果的应用,就是办公自动化系统(OA).在当前的软件开发实践中,B/S模式(浏览器/服务器模式)的开发可以采用三层结构,前端服务层.中间业务层.后台数据库.由于其扩展性好,数据安全性高,同时无须考虑客户端的兼容性,解决了C/S模式二层结构的诸多局限性,因而在办公自动化系统中得到了广泛的应用.