- 浏览: 39510 次
- 性别:
- 来自: 深圳
文章分类
最新评论
现在常用到两种定时器,做下备忘
有Spring的
另外一种可以自由配置执行时间,也是spring
一个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之类的执行下面这两行代码
有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 } }
发表评论
-
poi BigGridDemo
2013-07-05 09:04 973import java.io.*; import j ... -
mysql去除重复
2012-11-27 18:09 938今天在做个联系人功能时,要做导入去重复的功能 假设有10万个联 ... -
Struts标签之<s:optiontransferselect/>
2011-05-16 12:27 1728<s:optiontransferselect n ... -
test
2011-04-28 14:39 0testtest -
ant 找不到符号
2011-04-27 11:39 4240第一次用ANT打包,报找不到符号,找不到类,大部分是 ja ... -
Base64Coding
2010-12-17 10:08 979由于环境原因,经常使用HTTP或WebService接口,BA ... -
WebService备忘
2010-11-26 14:42 7831,new webservice project 2,new ... -
ibatis的模糊查询 like
2010-11-25 14:00 937<isNotNull prepend=" ... -
java解析XML
2010-11-15 17:47 897package resource; import jav ... -
一个LIST中的重复与不重复
2010-10-21 16:37 2065去掉一个LIST的重复 Set someSet = new H ... -
各种集合笔记
2010-10-21 16:27 812public class JAVAContainer { ... -
Struts2标签 增加序号列
2010-09-28 10:36 2109有的时候由于特殊需要,得在列前再多一列序号列,用Struts2 ... -
MAP传参需仔细
2010-09-19 18:04 1201在PO中 private Date birthday; ... -
struts2 格式化数字,可扩展四舍五入
2010-08-06 08:38 1917struts.properties中添加 FormatNume ... -
HTTP Status 404 - No result defined for action
2010-08-02 17:42 1791No result defined for action an ...
相关推荐
标题中的“fzTThreadTimer”是一个专为解决Delphi自带定时控件局限性而设计的线程定时器组件。描述中提到,Delphi内置的定时器控件(如TTimer)是基于消息机制工作的,这意味着它依赖于应用程序的消息循环来触发事件...
在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...
**ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...
STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...
在JavaScript编程中,定时器(Timer)是常用于实现异步操作的重要工具,例如延迟执行、周期性执行任务。然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将...
如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...
在本实验“实验8 定时器中断实验”中,我们将深入探讨单片机中的一个重要功能模块——定时器,以及如何使用C语言进行编程。定时器中断是嵌入式系统和微控制器应用中的核心概念,它允许系统在执行其他任务的同时,...
根据给定的文件信息,我们可以总结出以下关于“51单片机定时器C语言程序”的相关知识点: ### 一、51单片机简介 51单片机是一种广泛应用于电子设备中的微控制器,其核心是8位的中央处理器(CPU)。51单片机因其...
在本实验中,我们将深入探讨8位定时器中断在微控制器中的应用,主要使用的是Keil μVision集成开发环境(IDE)以及相关的编程语言。定时器中断是嵌入式系统中一个非常重要的功能,它允许处理器在执行其他任务的同时...
51定时器计算工具是一款专为51单片机编程者设计的应用软件,它简化了51系列定时器的设置和计算过程。51单片机是广泛应用在电子工程、物联网设备、自动化控制等领域的微控制器,其内部包含了多个定时器资源,用于执行...
在不依赖BIOS(板级支持包)的情况下,我们可以直接利用其内部的硬件资源,如定时器1和定时器2进行系统定时和中断处理。这两个定时器与定时器0在功能上相似,但提供了额外的灵活性,以满足不同的应用需求。 定时器1...
STM32定时器计算器是一款专为STM32微控制器设计的实用工具,它帮助开发者快速准确地计算出在不同工作模式下,定时器所需的配置参数,如频率、分频系数和周期设定值。STM32系列是基于ARM Cortex-M内核的微控制器,...
STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...
**C# 版本多媒体定时器详解** 在C#编程中,我们经常需要处理精确的定时任务,特别是在多媒体应用中,如音乐播放、视频处理等。传统的System.Timers.Timer或System.Threading.Timer虽然方便,但在某些情况下,它们的...
在IT领域,定时器是一种非常重要的工具,广泛应用于各种软件系统中,如操作系统、网络服务、游戏开发等。虚拟定时器则是对真实物理时钟的一种抽象,它允许开发者创建多个独立的定时任务,每个任务都有自己的定时逻辑...
在编程领域,定时器是一种非常重要的工具,它允许程序在特定的时间间隔执行某项操作。在C#中,我们可以利用多种方法实现定时器功能,其中之一就是通过调用底层的多媒体定时器API。本文将深入探讨如何在C#中调用采用...
QT高精度定时器是针对那些需要毫秒级别甚至更精细时间控制的应用程序设计的解决方案。在常规的QT和Windows系统中,内置的定时器在处理毫秒级别的延时时可能存在精度不足的问题,这可能会影响到一些对时间精确度要求...
STM32 定时器中断实验是嵌入式系统开发中的一个重要环节,尤其在基于Cortex-M32内核的STM32单片机中,定时器中断的应用广泛且至关重要。STM32系列微控制器拥有丰富的定时器资源,如基本定时器、通用定时器、高级...
辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...
在C#编程中,定时器(Timer)是一个非常常见的组件,用于执行周期性的任务。它在许多场景下都非常有用,比如实现数据轮询、界面更新或者其他时间触发的事件。然而,正确地管理和停止定时器是确保程序高效运行的关键...