`
huangsky
  • 浏览: 39510 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

定时器

    博客分类:
  • java
阅读更多
现在常用到两种定时器,做下备忘
有Spring的
<bean id="LoadTaskFactory"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="syncStatusTrigger" />
			</list>
		</property>
	</bean>
	<bean id="syncStatusTrigger"
		class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="startDelay">
			<value>500</value><!-- 延迟0.5S后运行 -->
		</property>
		<property name="repeatInterval">
			<value>280000</value><!-- 指定时间内运行一次 1000为1S-->
		</property>
		<property name="jobDetail">
			<ref bean="syncStatusTaskdetail" /><!-- 执行类 -->
		</property>
	</bean>
	<bean id="syncStatusTaskdetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetMethod">
			<value>run</value><!-- 执行方法 -->
		</property>
		<property name="targetObject">
			<ref bean="syncStatusTask" />
		</property>
	</bean>
        <!-- 任务实现类 -->
	<bean id="syncStatusTask" class="com.util.SynStatus"></bean>

另外一种可以自由配置执行时间,也是spring
<bean id="quartzJob" class="com.util.SynStatus"></bean>
        <!--  定义调用对象和调用对象的方法  -->
	<bean id="jobtask"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <!-- 调用的类 -->
		<property name="targetObject">
			<ref bean="quartzJob" />
		</property>
                <!-- 调用的类中的方法 -->
		<property name="targetMethod">
			<value>run</value>
		</property>
	</bean>
	<bean id="doTime"
		class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="jobtask" />
		</property>
                <!--  定义触发时间  -->
		<property name="cronExpression">
			<value>0 0/5 * * * ?</value>
		</property>
	</bean>
	<bean id="startQuertz" lazy-init="false" autowire="no"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="doTime" />
			</list>
		</property>
	</bean>

一个cron表达式有到少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下:
1.秒(0-59)
2.分钟(0-59)
3.小时(0-23)
4.月份中的是期(1-31)
5.月份(1-12或SUN-DEC)
6.星期中的日期(1-7或SUN-SAT) 7.年份(1970-2099)
例子:
0 0 12 * * ?  每天上午12点触发
0 0 10,14,16 * * ? 每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * ? 每月前10天每隔15分钟
30 0 0 1 1 ? 2012 在2012年1月1日午夜过30秒时
0 0 8-5 ? * MON-FRI 每个工作日的工作时间
- 区间
*  “每”
/  “到”
,  “和”
? 你不想设置那个字段
“月份中的日期”和“星期中的日期”这两个元素互斥,应该通过设置一个问号(?)来表明你不想设置的那个字段。

需要quartz-1.5.2.jar
============================================
没Spring的情况下,可以通过Servlet之类的执行下面这两行代码
Timer t=new Timer();
t.schedule(new CheckQueueTask(), 0, 1000*60*15);//每间隔15分钟执行一次


long daySpan = 24 * 60 * 60 * 1000;
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '16:30:30'");
Date startTime;
try {
    startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
    if(System.currentTimeMillis() > startTime.getTime())
        startTime = new Date(startTime.getTime() + daySpan);
        Timer t=new Timer();
        t.scheduleAtFixedRate(new TotalTask(), startTime,daySpan);
} catch (Exception e) {
    e.printStackTrace();
}


import java.util.TimerTask;

public class CheckQueueTask extends TimerTask {
	public void run() {
	     //do something
	}
}










分享到:
评论

相关推荐

    fzTThreadTimer_delphi定时器_delphi_线程定时器_

    标题中的“fzTThreadTimer”是一个专为解决Delphi自带定时控件局限性而设计的线程定时器组件。描述中提到,Delphi内置的定时器控件(如TTimer)是基于消息机制工作的,这意味着它依赖于应用程序的消息循环来触发事件...

    MFC定时器的使用 MFC定时器的使用

    在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...

    ACE完整牛逼定时器

    **ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...

    STM32 定时器级联

    STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...

    js 封装定时器解决多次调用定时器叠加问题及定时器无法清除的问题

    在JavaScript编程中,定时器(Timer)是常用于实现异步操作的重要工具,例如延迟执行、周期性执行任务。然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将...

    【STM32】HAL库-使用一个定时器使能另一个定时器-主定时器触发模式demo

    如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...

    实验8 定时器中断实验_定时器中断实验_

    在本实验“实验8 定时器中断实验”中,我们将深入探讨单片机中的一个重要功能模块——定时器,以及如何使用C语言进行编程。定时器中断是嵌入式系统和微控制器应用中的核心概念,它允许系统在执行其他任务的同时,...

    51单片机定时器C语言程序

    根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...

    实验8 定时器中断实验_keil_kei_8位定时器代码_

    在本实验中,我们将深入探讨8位定时器中断在微控制器中的应用,主要使用的是Keil μVision集成开发环境(IDE)以及相关的编程语言。定时器中断是嵌入式系统中一个非常重要的功能,它允许处理器在执行其他任务的同时...

    51定时器计算工具

    51定时器计算工具是一款专为51单片机编程者设计的应用软件,它简化了51系列定时器的设置和计算过程。51单片机是广泛应用在电子工程、物联网设备、自动化控制等领域的微控制器,其内部包含了多个定时器资源,用于执行...

    TMS320F2812 定时器1和定时器2的使用

    在不依赖BIOS(板级支持包)的情况下,我们可以直接利用其内部的硬件资源,如定时器1和定时器2进行系统定时和中断处理。这两个定时器与定时器0在功能上相似,但提供了额外的灵活性,以满足不同的应用需求。 定时器1...

    STM32定时器计算器

    STM32定时器计算器是一款专为STM32微控制器设计的实用工具,它帮助开发者快速准确地计算出在不同工作模式下,定时器所需的配置参数,如频率、分频系数和周期设定值。STM32系列是基于ARM Cortex-M内核的微控制器,...

    STM32定时器计算工具

    STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...

    C#版本多媒体定时器

    **C# 版本多媒体定时器详解** 在C#编程中,我们经常需要处理精确的定时任务,特别是在多媒体应用中,如音乐播放、视频处理等。传统的System.Timers.Timer或System.Threading.Timer虽然方便,但在某些情况下,它们的...

    一个定时器实现多个虚拟定时器具体代码实现

    在IT领域,定时器是一种非常重要的工具,广泛应用于各种软件系统中,如操作系统、网络服务、游戏开发等。虚拟定时器则是对真实物理时钟的一种抽象,它允许开发者创建多个独立的定时任务,每个任务都有自己的定时逻辑...

    C#调用多媒体定时器

    在编程领域,定时器是一种非常重要的工具,它允许程序在特定的时间间隔执行某项操作。在C#中,我们可以利用多种方法实现定时器功能,其中之一就是通过调用底层的多媒体定时器API。本文将深入探讨如何在C#中调用采用...

    QT高精度定时器

    QT高精度定时器是针对那些需要毫秒级别甚至更精细时间控制的应用程序设计的解决方案。在常规的QT和Windows系统中,内置的定时器在处理毫秒级别的延时时可能存在精度不足的问题,这可能会影响到一些对时间精确度要求...

    STM32 定时器中断实验

    STM32 定时器中断实验是嵌入式系统开发中的一个重要环节,尤其在基于Cortex-M32内核的STM32单片机中,定时器中断的应用广泛且至关重要。STM32系列微控制器拥有丰富的定时器资源,如基本定时器、通用定时器、高级...

    辅助软件 定时器计算器 辅助软件 定时器计算器

    辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...

    C#中定时器停止问题

    在C#编程中,定时器(Timer)是一个非常常见的组件,用于执行周期性的任务。它在许多场景下都非常有用,比如实现数据轮询、界面更新或者其他时间触发的事件。然而,正确地管理和停止定时器是确保程序高效运行的关键...

Global site tag (gtag.js) - Google Analytics