`
huangsky
  • 浏览: 38477 次
  • 性别: 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
	}
}










分享到:
评论

相关推荐

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

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

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

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

    ZigBee——cc2530+定时器实验(用到不同的定时器)

    1、掌握定时器高精度硬件延时函数; 2、掌握电调PWM信号输出(Period:20ms, Duty:1ms - 2ms); 3、掌握呼吸LED灯; 4、掌握无源蜂鸣器音乐播放(要求音调与节拍都要用定时器控制); 实验现象: 1、使用定时器1的...

    linux下多定时器+线程池的实现(经典)

    //linux只允许单进程拥有一个定时器,因此在linux下的单进程中要使用多个定时器,则需要自己维护管理 // //这个实现允许用户使用多个自定义的定时器,每个自定义的定时器将周期地被触发直到其被删除。实现的主要思路...

    【Linux】C-C++ 一种简单易用的高效定时器实现.rar

    一种基于条件变量的超时机制实现的较高精度又简单的定时器,经过实际测试验证可行。之所以利用条件变量的超时机制,是为了满足可以随时打断及时的需求,同时又不需要轮询的去查,在等待的过程中,线程处于阻塞休眠...

    STM32的一个通用定时器理论上可以当做N个来用

    从西门子S7-1200编程时发现,原来PLC如此强大,定时器竟然可以想用多少就用多少(有点夸张,但是几百个是没有问题的),而32里面定时器却限制很多,还牵扯到优先级,用起来还是PLC封装好的定时器模块用着方便。...

    单片机中断定时器定时器定时器

    单片机中断 定时器 欢迎大家的使用 中断系统是一个很重要的概念

    STM32定时器输出比较模式完全解读,毫秒级定时器配置

    /* 定时器配置: 1.设置定时器最大计数值 50000 2.设置时钟分频系数:TIM_CKD_DIV1 3. 设置预分频: 1Mhz/50000= 1hz 4.定时器计数模式 向上计数模式 */ TIM_TimeBaseStructure.TIM_Period = 0xffff; TIM_...

    Qt的MoveToThread显示无法关闭在另一个线程的定时器

    Qt线程有两种方法:1是继承qthread;...解决办法:无法关闭在另一个线程的定时器,是因为定时器要在新的线程中new,不要在构造函数中new出来,这样定时器才属于另一个线程,而不是创造该线程的主线程中;

    Cube生成定时器2触发双ADC同步采集并用DMA传输

    用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的...

    338-定时器中断控制的独立式键盘扫描实验(51单片机C语言实例Proteus仿真和代码)

    338-定时器中断控制的独立式键盘扫描实验(51单片机C语言实例Proteus仿真和代码)338-定时器中断控制的独立式键盘扫描实验(51单片机C语言实例Proteus仿真和代码)338-定时器中断控制的独立式键盘扫描实验(51单片机C语言...

    STM32定时器触发ADC +DMA

    1、使用定时器中断每隔一定时间进行ADC转换,这样每次都必须读ADC的数据寄存器,非常浪费时间! 2、把ADC设置成连续转换模式,同时对应的DMA通道开启循环模式,这样ADC就一直在进行数据采集然后通过DMA把数据搬运至...

    支持所有单片机软件定时器

    无OS的单片机中,以硬件定时器作基准,软件查询方式的定时器组件,可配置任意数量的定时器个数,支持任意单片机,只需要修改时基础初始化函数即可,使用流程: 1.初始化void timer_init(int16u_t tick_ms) 2.创建软件...

    用555定时器产生信号音

    555定时器是一种模拟电路和数字电路相结合的中规模集成器件,它性能优良,适用范围很广,外部加接少量的阻容元件可以很方便地组成单稳态触发器和多谐振荡器,以及不需外接元件就可组成施密特触发器。因此集成555定时...

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

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

    STM32吃透通用定时器11个例程源码教程

    IMER-1 : 定时器上溢。 TIMER-2 : 强置输出模式。 TIMER-3 : 输出比较模式。 TIMER-4 : PWM1模式。 TIMER-5 : 输入捕获模式(结果硬件仿真观察)。 TIMER-6 : PWM输入模式。 TIMER-7 : 单脉冲模式。 TIMER-8 : TIMER2...

    52单片机定时器2作为串行口波特率发生器使用(C语言程序)

    本文是关于52单片机定时器计数器2做为串行口波特率发生器使用的例子,类似于定时器1作为波特率发生器工作在模式1下,但是不同的是:定时器2作为波特率发生器是16位自动重装的,位数比定时器1作为波特率发生器要高...

    定时器(TIM)和通用输入/输出(GPIO) 实现功能:定时器每20ms扫描一次按键,按键配置LED亮灭

    主要功能:定时器每20ms扫描一次按键,按键配置LED亮灭。 在STM32F103系列的单片机应用中,定时器(TIM)和通用输入/输出(GPIO)是常用的模块之一。这两个模块结合起来,可以实现非常多的实际应用,其中,定时器...

    微机原理与接口技术综合实验论文 定时器

    可编程的计数器/定时器是为了方便计算机系统的设计和应用而研制的,很容易和系统总线连接。它综合了软件定时和硬件定时的双重优点,定时时间很容易地通过软件设置和改变,定时过程通过硬件实现,当定时时间到时,可...

    spring定时器 spring定时器

    spring定时器spring定时器spring定时器spring定时器spring定时器

Global site tag (gtag.js) - Google Analytics