//第一步
public static void main(String[] args)
{
// PropertyConfigurator.configure("log4j.properties");
BaseTimer timer = new ReSendTimer();
timer.startTimer();
}
//第二步(赋值具体要执行任务的类)
/**
*
*/
package com.lolaage.cisvr.timer;
import com.lolaage.cisvr.sysconst.CiSvrConst;
/**
* @author huangye *
*/
public class ReSendTimer extends BaseTimer
{
/**
* constructor
*/
public ReSendTimer()
{
init(CiSvrConst.TIMER, CiSvrConst.RESEND_TIMER_INTERVAL,
CiSvrConst.RESEND_DEFAULT_TIMER_INTERVAL);
setTimerTsk(new ReSendTask());
}
}
//第三步(定时启动的规则)
/**
*
*/
package com.lolaage.cisvr.timer;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.lolaage.cisvr.sysconf.CiSvrConfig;
import com.lolaage.cisvr.sysconf.ICiSvrConfig;
import com.lolaage.cisvr.sysconst.CiSvrConst;
/**
* @author huangye *
*/
public class BaseTimer
{
/**
* task
*/
private Timer task;
/**
* timerTsk
*/
private TimerTask timerTsk;
/**
* interval
*/
private int interval;
/**
* log
*/
private static Log log = LogFactory.getLog(BaseTimer.class);
/**
* initialization
*/
public void init(String module, String cfgItem, int defaultVaule)
{
if (log.isDebugEnabled())
{
log.debug("timer initialization.");
}
// read interval from config file (从配置中获取定时间隔)
ICiSvrConfig config = CiSvrConfig.getInstance();
interval = config.readInt(module, cfgItem);
if (CiSvrConst.ZERO >= interval)
{
if (log.isWarnEnabled())
{
log.warn("config data errer.");
}
interval = defaultVaule;
}
if (log.isInfoEnabled())
{
log.info("interval->" + interval);
}
task = new Timer();
}
/**
* start timer
*/
public void startTimer()
{
// start timer
if (log.isTraceEnabled())
{
log.trace("start timer successfully.");
}
task.schedule(timerTsk, CiSvrConst.ZERO, interval
* CiSvrConst.ONE_SECOND_IN_MILLSECOND);
}
/**
* @param timerTsk
* the timerTsk to set
*/
public void setTimerTsk(TimerTask timerTsk)
{
this.timerTsk = timerTsk;
}
}
//第四步(定时要执行的任务类)
/**
*
*/
package com.lolaage.cisvr.timer;
import java.util.TimerTask;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.lolaage.cisvr.resource.TaskQueue4CommLayer;
/**
* @author huangye *
*/
public class ReSendTaskextends TimerTask
{
/**
* taskQueue4CommLayer
*/
private TaskQueue4CommLayer taskQueue4CommLayer;
/**
* log
*/
private static Log log = LogFactory.getLog(StatTask.class);
/**
* constructor
*/
public ReSendTask()
{
taskQueue4CommLayer = TaskQueue4CommLayer.getInstance();
}
/*
* (non-Javadoc)
*
* @see java.util.TimerTask#run()
*/
public void run()
{
try
{
//定时要执行的任务
}
catch (Exception e)
{
if (log.isErrorEnabled())
{
log.error(e);
}
}
}
}
分享到:
相关推荐
本文实例讲述了C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析,分享给大家供大家参考。具体分析如下: 在.NET Framework里面提供了三种Timer ① System.Windows.Forms.Timer ② System.Timers.Timer ③...
**基于Verilog的Timer计时器详解** 在数字系统设计中,Timer是一个至关重要的模块,它用于实现定时或延时功能。在这个项目中,我们关注的是一个基于Verilog硬件描述语言实现的Timer计时器。Verilog是一种广泛使用的...
这个"02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序.rar"压缩包包含了一系列针对STC8A8K芯片上所有定时器的测试程序,这些程序对于理解和应用这些定时器功能至关重要。 STC8A8K系列单片机提供了多个定时器,包括...
### Timer 控件在C#中的应用 #### 一、Timer 控件简介 在C#的Windows Forms应用程序开发中,`System.Windows.Forms.Timer`(通常简称为Timer)是一种非常实用的控件,它能够周期性地执行某个方法或事件处理程序。...
在IT行业中,硬件定时器(HW Timer)是嵌入式系统和计算机硬件中不可或缺的组件。硬件定时器通常由微控制器或系统级芯片(SoC)中的专用硬件电路实现,用于执行时间相关的任务,如中断服务、周期性操作或者精确计时...
本文将深入探讨C8051F340中的TIMER0定时器中断,以及如何利用它实现所需的系统功能。 TIMER0是C8051F340内部的一种硬件定时器资源,常用于时间间隔的测量、脉冲宽度调制(PWM)生成、波特率发生器等多种应用。它...
C语言02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序(STC32G-DEMO-CODE-220311kw)C语言02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序(STC32G-DEMO-CODE-220311kw)C语言02-Timer0-Timer1-Timer2-Timer3-Timer4...
单片机C语言程序设计 TIMER0与TIMER1控制条形LED(有源码)单片机C语言程序设计 TIMER0与TIMER1控制条形LED(有源码)单片机C语言程序设计 TIMER0与TIMER1控制条形LED(有源码)单片机C语言程序设计 TIMER0与TIMER1控制...
C#定时器(Timer)是.NET框架中一个非常重要的组件,它允许开发者在特定的时间间隔内执行特定的代码块,从而实现周期性的任务。在Windows应用程序、服务或控制台程序中,C#定时器常常被用来创建后台任务、监控、更新...
MsTimer2是一个专门为Arduino平台设计的高级定时器库,它扩展了Arduino的定时功能,提供了比内置`millis()`和`delay()`函数更精确、更灵活的定时解决方案。这个库特别适合那些需要高精度定时任务或者同时管理多个...
最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED...
本文将深入探讨Timer的各个层面,包括Timer机制、硬件Timer、操作系统中的Timer、应用程序中的Timer以及在QEMU中的Timer模拟。 1. Timer Mechanism Timer机制是计算机系统中用于定时和计时的基础结构。它通常由多层...
在这款芯片中,TIMER2是一个重要的定时/计数器资源,它提供了中断功能,使得开发者能够实现基于时间的事件处理和精确的时序控制。下面我们将详细探讨TIMER2定时器中断的相关知识点。 1. TIMER2结构与功能: TIMER2...
标题 "多个 timer 使用示例" 暗示我们即将探讨的是如何在编程环境中,特别是使用 Progress 4GL(通常简称为 PB,即 PowerBuilder)语言,有效地管理并使用多个计时器(timer)对象。Progress 4GL 是一种面向对象的...
标题 "cmsdk_apb_timer_M3verilog_SOC_apb_timer_apbverilog_CMSDK_" 暗示了这是一个基于Verilog语言设计的定时器模块,适用于ARM Cortex-M3架构的系统级芯片(SoC)设计。CMSDK可能指的是Core Micro-System Design ...
根据提供的文档信息,我们可以深入探讨ARM Generic Timer的相关知识点。标题和描述均提到“ARM Generic Timer Prelim Data”,这意味着文档提供的是关于ARM通用定时器的一些初步数据和技术规范。下面将详细介绍ARM ...
在这个场景中,"異步Timer Timer"的标题和描述提到了时间管理和异步处理事件的概念,这通常与编程语言中的定时器控件有关。我们将深入探讨异步编程、VB(Visual Basic)中的Timer控件以及它们如何协同工作。 首先,...
【标题】"dw_apb_timer_of.rar_V2_apb timer_dw_apb_dw_timer_pc3x2" 提供的是一款基于Linux内核v2.13.6的APB定时器驱动程序,它主要关注DW_APB(DesignWare APB)定时器的实现。DW_APB定时器是一种常见的数字信号...
4. **区分TIMER**:在Timer事件处理程序中,通过TIMER对象的Handle属性或自定义的ID属性来判断是哪个TIMER触发了事件,然后执行相应的操作。 例如,如果窗口中有两个TIMER(TIMER1和TIMER2),并且都绑定了Timer...