我想在WebLogic下实现定时器的功能,
即:在某一固定时间开始执行某一功能!
写一个servlet,在web.xml配置为
<servlet>
<servlet-name> servlentname </servlet-name>
<servlet-class> full.name.of.servlet </servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
然后实现这个servlet的init方法,创建一个Timer,这样你的应用程序就会有一个定时器了
下面就Servlet侦听器结合Java定时器来讲述整个实现过程。要运用Servlet侦听器需要实现 javax.servlet.ServletContextListener接口,同时实现它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)两个接口函数。考虑定时器有个建立和销毁的过程,看了前面两个接口函数,就不容置疑的把建立的过程置入 contextInitialized,把销毁的过程置入contextDestroyed了。
我把ServletContextListener的实现类取名为ContextListener,在其内添加一个定时器,示例代码如下所示:
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
public class ContextListener
extends HttpServlet
implements ServletContextListener {
public ContextListener() {
}
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
event.getServletContext().log( "定时器已启动 ");
timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000);
event.getServletContext().log( "已经添加任务调度表 ");
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log( "定时器销毁 ");
}
}
以上代码中, timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000)这一行为定时器调度语句,其中MyTask是自定义需要被调度的执行任务(在我的财政数据中心项目中就是报表计算引擎入口),从 java.util.TimerTask继承,下面会重点讲述,第三个参数表示每小时(即60*60*1000毫秒)被触发一次,中间参数0表示无延迟。其它代码相当简单,不再详细说明。
分享到:
相关推荐
标题中的“fzTThreadTimer”是一个专为解决Delphi自带定时控件局限性而设计的线程定时器组件。描述中提到,Delphi内置的定时器控件(如TTimer)是基于消息机制工作的,这意味着它依赖于应用程序的消息循环来触发事件...
在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...
**ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...
STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...
在JavaScript编程中,定时器(Timer)是常用于实现异步操作的重要工具,例如延迟执行、周期性执行任务。然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将...
如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...
在本实验“实验8 定时器中断实验”中,我们将深入探讨单片机中的一个重要功能模块——定时器,以及如何使用C语言进行编程。定时器中断是嵌入式系统和微控制器应用中的核心概念,它允许系统在执行其他任务的同时,...
根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...
在本实验中,我们将深入探讨8位定时器中断在微控制器中的应用,主要使用的是Keil μVision集成开发环境(IDE)以及相关的编程语言。定时器中断是嵌入式系统中一个非常重要的功能,它允许处理器在执行其他任务的同时...
51定时器计算工具是一款专为51单片机编程者设计的应用软件,它简化了51系列定时器的设置和计算过程。51单片机是广泛应用在电子工程、物联网设备、自动化控制等领域的微控制器,其内部包含了多个定时器资源,用于执行...
在不依赖BIOS(板级支持包)的情况下,我们可以直接利用其内部的硬件资源,如定时器1和定时器2进行系统定时和中断处理。这两个定时器与定时器0在功能上相似,但提供了额外的灵活性,以满足不同的应用需求。 定时器1...
STM32定时器计算器是一款专为STM32微控制器设计的实用工具,它帮助开发者快速准确地计算出在不同工作模式下,定时器所需的配置参数,如频率、分频系数和周期设定值。STM32系列是基于ARM Cortex-M内核的微控制器,...
STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...
**C# 版本多媒体定时器详解** 在C#编程中,我们经常需要处理精确的定时任务,特别是在多媒体应用中,如音乐播放、视频处理等。传统的System.Timers.Timer或System.Threading.Timer虽然方便,但在某些情况下,它们的...
在IT领域,定时器是一种非常重要的工具,广泛应用于各种软件系统中,如操作系统、网络服务、游戏开发等。虚拟定时器则是对真实物理时钟的一种抽象,它允许开发者创建多个独立的定时任务,每个任务都有自己的定时逻辑...
在编程领域,定时器是一种非常重要的工具,它允许程序在特定的时间间隔执行某项操作。在C#中,我们可以利用多种方法实现定时器功能,其中之一就是通过调用底层的多媒体定时器API。本文将深入探讨如何在C#中调用采用...
QT高精度定时器是针对那些需要毫秒级别甚至更精细时间控制的应用程序设计的解决方案。在常规的QT和Windows系统中,内置的定时器在处理毫秒级别的延时时可能存在精度不足的问题,这可能会影响到一些对时间精确度要求...
STM32 定时器中断实验是嵌入式系统开发中的一个重要环节,尤其在基于Cortex-M32内核的STM32单片机中,定时器中断的应用广泛且至关重要。STM32系列微控制器拥有丰富的定时器资源,如基本定时器、通用定时器、高级...
辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...
在C#编程中,定时器(Timer)是一个非常常见的组件,用于执行周期性的任务。它在许多场景下都非常有用,比如实现数据轮询、界面更新或者其他时间触发的事件。然而,正确地管理和停止定时器是确保程序高效运行的关键...