- 浏览: 41077 次
- 性别:
- 来自: 北京
文章分类
最新评论
//第一个类:监听
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SysContextListener implements ServletContextListener {
private Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
event.getServletContext().log("定时器已启动");
timer.schedule(new exportHistoryBean(event.getServletContext()), 0,50 * 1000);//5秒执行一次
event.getServletContext().log("已经添加任务");
}
public void contextDestroyed(ServletContextEvent event) {// 在这里关闭监听器,所以在这里销毁定时器。
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
//第二个类:执行的动作,编写自己的功能类,此类一定要extends定时器类中TimerTask
exportHistoryBean.java
package axtic.bean;
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
public class exportHistoryBean extends TimerTask{
private ServletContext context = null;
public exportHistoryBean(ServletContext context)
{
this.context = context;
}
public void run()
{
context.log("开始执行指定任务");
//要执行的动作
context.log("指定任务执行结束");
}
}
}
}
三:在web.xml文件中配置监听(上面第一个类)
<!-- 定时任务调度监听 -->
<listener>
<listener-class>
com.egf.qingbao.lsgzry.internal.SysContextListener
</listener-class>
</listener>
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SysContextListener implements ServletContextListener {
private Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
event.getServletContext().log("定时器已启动");
timer.schedule(new exportHistoryBean(event.getServletContext()), 0,50 * 1000);//5秒执行一次
event.getServletContext().log("已经添加任务");
}
public void contextDestroyed(ServletContextEvent event) {// 在这里关闭监听器,所以在这里销毁定时器。
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
//第二个类:执行的动作,编写自己的功能类,此类一定要extends定时器类中TimerTask
exportHistoryBean.java
package axtic.bean;
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
public class exportHistoryBean extends TimerTask{
private ServletContext context = null;
public exportHistoryBean(ServletContext context)
{
this.context = context;
}
public void run()
{
context.log("开始执行指定任务");
//要执行的动作
context.log("指定任务执行结束");
}
}
}
}
三:在web.xml文件中配置监听(上面第一个类)
<!-- 定时任务调度监听 -->
<listener>
<listener-class>
com.egf.qingbao.lsgzry.internal.SysContextListener
</listener-class>
</listener>
发表评论
-
java/js 时间
2016-03-14 10:54 0/** * 根据传入时间获取上月月份 */ publ ... -
杂七杂八1
2016-03-14 10:51 0public ResponseModel execute(Re ... -
《转》fastjson生成和解析json数据,序列化和反序列化数据
2015-09-29 15:17 1821fastjson生成和解析json数据,序列化和反序列化数据 ... -
fastjson和数组,list,map之间转换
2015-09-29 14:36 4626package fastJson.test; imp ... -
java unicode编码转换才成汉字
2014-11-05 15:40 1738package com.bky.controller; p ... -
遍历Map的四种方法
2014-08-06 11:52 0public static void main(String[ ... -
java中URLEncoder.encode与URLDecoder.docode的使用
2014-08-01 10:09 0在http请求时,传递参数的时候,如果有中文,那么可以先转码再 ... -
URL地址中获取参数和值
2014-07-10 10:09 1246/* * Copyright 2012 The EGF ... -
深入java异常处理机制--深受启发(转)
2014-04-03 15:14 998(转载自:http://www.blogjava.net/fr ... -
java开发中各种异常
2014-04-03 14:33 582作为一名开发者,Ja ... -
java读取txt文件,导入数据库
2014-03-18 16:16 2171package com.egf.qingbao; impor ... -
超链接点击后不跳转
2014-01-27 15:16 1526让超链接点击后不跳转,可以用href = "#&q ... -
dom4j生成和解析xml文件
2014-01-27 15:17 671package com.test; import ... -
jdom生成和解析xml文件
2014-01-27 15:18 585package com.test; import ... -
java生成xml文件
2014-01-15 17:03 479/* * Copyright 2013 The EGF ... -
java实现excel导入功能
2014-01-15 16:53 967方法一 /** *使用Hibernate框架导入 * @thr ... -
String类常用的方法
2013-04-23 12:02 639java中String的常用方法 1、length() 字符 ...
相关推荐
`Timer`类是Java中用于实现定时任务调度的一个基础工具,它位于`java.util`包中。在本文中,我们将深入探讨`Timer`类的基本使用和示例,帮助你理解如何在Java程序中实现简单的定时任务。 首先,`Timer`类提供了计划...
在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...
Java定时任务调度是Java开发中一个非常重要的技术领域,它允许开发者在特定的时间点或按照预定义的周期执行任务,从而实现自动化的工作流程。在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util...
Java定时任务和作业调度在软件...总的来说,理解并掌握Java的定时任务和作业调度,无论是Quartz还是Timer,都是提升开发效率和系统自动化能力的重要技能。通过实践和不断探索,可以更好地利用这些工具为项目带来便利。
在Java中,我们可以利用`java.util.Timer`类和`java.util.TimerTask`类来实现简单的定时任务,但这种实现方式存在线程安全问题。在Web应用中,我们可以利用Servlet容器提供的特性来更优雅地处理定时任务,这就是描述...
Quartz还支持集群和持久化,这意味着多个Quartz实例可以在分布式环境中协作调度任务,而且任务的状态和计划可以存储在数据库中,保证了高可用性和容错性。通过Spring与Quartz的整合,可以轻松地在Spring应用中管理...
本文将详细介绍两种常用的Java定时任务实现方式:Timer类和Spring框架的Quartz调度器。 首先,第一种方式是使用Java内置的`Timer`类。`Timer`类提供了定时任务调度的功能,可以按照预设的时间间隔执行任务。在提供...
《Timer定时任务详解》 在计算机编程中,定时任务是一项重要的功能,它允许程序在特定的时间间隔或预定的时间点执行特定的操作。Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的...
总结来说,Java定时器是通过`Timer`和`TimerTask`类实现的,它们提供了基础的定时任务调度功能。在Servlet环境中,我们可以利用监听器或Servlet的初始化方法来整合定时器。然而,对于更复杂的定时需求,建议使用`...
在Java中,`java.util.Timer`类提供了调度定时任务的功能,而`java.util.TimerTask`则是执行这些任务的具体载体。两者结合,可以灵活地安排任务的执行时间、频率以及执行条件。 #### TimerTask类 `TimerTask`是一...
总结,Java定时任务调度框架提供了多种选择,从简单的`Timer`到功能丰富的Quartz,可以根据项目需求选择合适的实现方式。同时,理解背后的基础算法,如小顶堆和时间轮,有助于优化任务调度的性能和设计。
Java语言中实现定时调度任务通常有三种主流方法:Timer调度、线程池调度和Quartz调度。每种方法各有其特点和适用场景。 1. Timer调度 Timer调度是Java中最简单的定时调度实现方式。其主要特点是非常简单和直观。它...
- `java.util.Timer`: 这是Java标准库中提供的一种简单的定时任务调度器,它可以安排一次性或周期性的任务。然而,`Timer`并不适合并发环境,因为它只有一个线程处理所有任务,可能导致任务间的相互阻塞。 - `java...
总结起来,Java提供了`Timer`和`ScheduledExecutorService`两种方式来实现定时执行任务。`Timer`适合简单的定时任务,而`ScheduledExecutorService`更适合复杂的需求,如多线程环境和高并发场景。选择哪种方式取决于...
在这个“java定时任务小例子”中,我们可以看到两个关键文件:`TimerTest.java`和`DoTask.java`,它们分别代表了定时器的任务调度和实际执行任务的组件。 首先,我们来看`TimerTest.java`。这个文件很可能是整个...
需要注意的是,`Timer`并不是线程安全的,如果你在一个多线程环境中使用同一个Timer实例来调度任务,可能会遇到意想不到的问题。此外,当主线程结束时,Timer线程可能不会立即停止,导致程序退出前仍有未执行完的...
Quartz是Java平台上广泛使用的一个开源任务调度框架,它提供了一种灵活的方式来创建、调度和执行定时任务。Quartz支持 cron 表达式,可以方便地配置任务的执行时间和频率,同时还支持任务集群,能够在分布式环境中...
本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及Spring框架中的`ScheduledTimerTask`。 1. **java.util.Timer** `java.util.Timer`类是最基础的定时任务工具,...
在Java编程语言中,`Timer`类和Spring框架的定时任务是两种常见的实现定时执行任务的方式。本篇文章将深入探讨这两个主题,旨在帮助初学者理解它们的工作原理以及如何在实际项目中应用。 首先,让我们来看一下Java...
Java提供了一些内置的API来创建定时任务,如`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`。然而,对于更复杂的调度需求,开发者通常会使用第三方库,如Quartz和Spring的`@Scheduled`注解。...