我想在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表示无延迟。其它代码相当简单,不再详细说明。
分享到:
相关推荐
如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...
辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...
1、掌握定时器高精度硬件延时函数; 2、掌握电调PWM信号输出(Period:20ms, Duty:1ms - 2ms); 3、掌握呼吸LED灯; 4、掌握无源蜂鸣器音乐播放(要求音调与节拍都要用定时器控制); 实验现象: 1、使用定时器1的...
//linux只允许单进程拥有一个定时器,因此在linux下的单进程中要使用多个定时器,则需要自己维护管理 // //这个实现允许用户使用多个自定义的定时器,每个自定义的定时器将周期地被触发直到其被删除。实现的主要思路...
一种基于条件变量的超时机制实现的较高精度又简单的定时器,经过实际测试验证可行。之所以利用条件变量的超时机制,是为了满足可以随时打断及时的需求,同时又不需要轮询的去查,在等待的过程中,线程处于阻塞休眠...
从西门子S7-1200编程时发现,原来PLC如此强大,定时器竟然可以想用多少就用多少(有点夸张,但是几百个是没有问题的),而32里面定时器却限制很多,还牵扯到优先级,用起来还是PLC封装好的定时器模块用着方便。...
单片机中断 定时器 欢迎大家的使用 中断系统是一个很重要的概念
/* 定时器配置: 1.设置定时器最大计数值 50000 2.设置时钟分频系数:TIM_CKD_DIV1 3. 设置预分频: 1Mhz/50000= 1hz 4.定时器计数模式 向上计数模式 */ TIM_TimeBaseStructure.TIM_Period = 0xffff; TIM_...
Qt线程有两种方法:1是继承qthread;...解决办法:无法关闭在另一个线程的定时器,是因为定时器要在新的线程中new,不要在构造函数中new出来,这样定时器才属于另一个线程,而不是创造该线程的主线程中;
用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的...
338-定时器中断控制的独立式键盘扫描实验(51单片机C语言实例Proteus仿真和代码)338-定时器中断控制的独立式键盘扫描实验(51单片机C语言实例Proteus仿真和代码)338-定时器中断控制的独立式键盘扫描实验(51单片机C语言...
1、使用定时器中断每隔一定时间进行ADC转换,这样每次都必须读ADC的数据寄存器,非常浪费时间! 2、把ADC设置成连续转换模式,同时对应的DMA通道开启循环模式,这样ADC就一直在进行数据采集然后通过DMA把数据搬运至...
无OS的单片机中,以硬件定时器作基准,软件查询方式的定时器组件,可配置任意数量的定时器个数,支持任意单片机,只需要修改时基础初始化函数即可,使用流程: 1.初始化void timer_init(int16u_t tick_ms) 2.创建软件...
555定时器是一种模拟电路和数字电路相结合的中规模集成器件,它性能优良,适用范围很广,外部加接少量的阻容元件可以很方便地组成单稳态触发器和多谐振荡器,以及不需外接元件就可组成施密特触发器。因此集成555定时...
MFC定时器的使用MFC定时器的使用MFC定时器的使用MFC定时器的使用MFC定时器的使用MFC定时器的使用MFC定时器的使用
IMER-1 : 定时器上溢。 TIMER-2 : 强置输出模式。 TIMER-3 : 输出比较模式。 TIMER-4 : PWM1模式。 TIMER-5 : 输入捕获模式(结果硬件仿真观察)。 TIMER-6 : PWM输入模式。 TIMER-7 : 单脉冲模式。 TIMER-8 : TIMER2...
本文是关于52单片机定时器计数器2做为串行口波特率发生器使用的例子,类似于定时器1作为波特率发生器工作在模式1下,但是不同的是:定时器2作为波特率发生器是16位自动重装的,位数比定时器1作为波特率发生器要高...
主要功能:定时器每20ms扫描一次按键,按键配置LED亮灭。 在STM32F103系列的单片机应用中,定时器(TIM)和通用输入/输出(GPIO)是常用的模块之一。这两个模块结合起来,可以实现非常多的实际应用,其中,定时器...
可编程的计数器/定时器是为了方便计算机系统的设计和应用而研制的,很容易和系统总线连接。它综合了软件定时和硬件定时的双重优点,定时时间很容易地通过软件设置和改变,定时过程通过硬件实现,当定时时间到时,可...
spring定时器spring定时器spring定时器spring定时器spring定时器