`

timer

阅读更多
//第一步
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的用法分析

    本文实例讲述了C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析,分享给大家供大家参考。具体分析如下: 在.NET Framework里面提供了三种Timer ① System.Windows.Forms.Timer ② System.Timers.Timer ③...

    Timer_基于Verilog的timer计时器_

    **基于Verilog的Timer计时器详解** 在数字系统设计中,Timer是一个至关重要的模块,它用于实现定时或延时功能。在这个项目中,我们关注的是一个基于Verilog硬件描述语言实现的Timer计时器。Verilog是一种广泛使用的...

    02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序.rar

    这个"02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序.rar"压缩包包含了一系列针对STC8A8K芯片上所有定时器的测试程序,这些程序对于理解和应用这些定时器功能至关重要。 STC8A8K系列单片机提供了多个定时器,包括...

    加Timer控件 timer1

    ### Timer 控件在C#中的应用 #### 一、Timer 控件简介 在C#的Windows Forms应用程序开发中,`System.Windows.Forms.Timer`(通常简称为Timer)是一种非常实用的控件,它能够周期性地执行某个方法或事件处理程序。...

    timer_hw.rar_hw_timer

    在IT行业中,硬件定时器(HW Timer)是嵌入式系统和计算机硬件中不可或缺的组件。硬件定时器通常由微控制器或系统级芯片(SoC)中的专用硬件电路实现,用于执行时间相关的任务,如中断服务、周期性操作或者精确计时...

    4 Timer0定时器中断_TIMER0_c8051f340_

    本文将深入探讨C8051F340中的TIMER0定时器中断,以及如何利用它实现所需的系统功能。 TIMER0是C8051F340内部的一种硬件定时器资源,常用于时间间隔的测量、脉冲宽度调制(PWM)生成、波特率发生器等多种应用。它...

    C语言02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序(STC32G-DEMO-CODE-22

    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控制条形LED(有源码)单片机C语言程序设计 TIMER0与TIMER1控制...

    C#定时器(Timer)

    C#定时器(Timer)是.NET框架中一个非常重要的组件,它允许开发者在特定的时间间隔内执行特定的代码块,从而实现周期性的任务。在Windows应用程序、服务或控制台程序中,C#定时器常常被用来创建后台任务、监控、更新...

    MsTimer2.rar

    MsTimer2是一个专门为Arduino平台设计的高级定时器库,它扩展了Arduino的定时功能,提供了比内置`millis()`和`delay()`函数更精确、更灵活的定时解决方案。这个库特别适合那些需要高精度定时任务或者同时管理多个...

    最新单片机仿真 TIMER0与TIMER1控制条形LED

    最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED最新单片机仿真 TIMER0与TIMER1控制条形LED...

    系统Timer机制,从硬件到操作系统,还有Qemu对timer的模拟

    本文将深入探讨Timer的各个层面,包括Timer机制、硬件Timer、操作系统中的Timer、应用程序中的Timer以及在QEMU中的Timer模拟。 1. Timer Mechanism Timer机制是计算机系统中用于定时和计时的基础结构。它通常由多层...

    5 Timer2定时器中断_c8051f340_TIMER2定时器中断_

    在这款芯片中,TIMER2是一个重要的定时/计数器资源,它提供了中断功能,使得开发者能够实现基于时间的事件处理和精确的时序控制。下面我们将详细探讨TIMER2定时器中断的相关知识点。 1. TIMER2结构与功能: TIMER2...

    多个 timer 使用示例

    标题 "多个 timer 使用示例" 暗示我们即将探讨的是如何在编程环境中,特别是使用 Progress 4GL(通常简称为 PB,即 PowerBuilder)语言,有效地管理并使用多个计时器(timer)对象。Progress 4GL 是一种面向对象的...

    cmsdk_apb_timer_M3verilog_SOC_apb_timer_apbverilog_CMSDK_

    标题 "cmsdk_apb_timer_M3verilog_SOC_apb_timer_apbverilog_CMSDK_" 暗示了这是一个基于Verilog语言设计的定时器模块,适用于ARM Cortex-M3架构的系统级芯片(SoC)设计。CMSDK可能指的是Core Micro-System Design ...

    arm generic timer prelim data

    根据提供的文档信息,我们可以深入探讨ARM Generic Timer的相关知识点。标题和描述均提到“ARM Generic Timer Prelim Data”,这意味着文档提供的是关于ARM通用定时器的一些初步数据和技术规范。下面将详细介绍ARM ...

    異步Timer Timer

    在这个场景中,"異步Timer Timer"的标题和描述提到了时间管理和异步处理事件的概念,这通常与编程语言中的定时器控件有关。我们将深入探讨异步编程、VB(Visual Basic)中的Timer控件以及它们如何协同工作。 首先,...

    dw_apb_timer_of.rar_V2 _apb timer_dw_apb_dw_timer_pc3x2

    【标题】"dw_apb_timer_of.rar_V2_apb timer_dw_apb_dw_timer_pc3x2" 提供的是一款基于Linux内核v2.13.6的APB定时器驱动程序,它主要关注DW_APB(DesignWare APB)定时器的实现。DW_APB定时器是一种常见的数字信号...

    pb多timer事件实例.zip

    4. **区分TIMER**:在Timer事件处理程序中,通过TIMER对象的Handle属性或自定义的ID属性来判断是哪个TIMER触发了事件,然后执行相应的操作。 例如,如果窗口中有两个TIMER(TIMER1和TIMER2),并且都绑定了Timer...

Global site tag (gtag.js) - Google Analytics