quartz_spring 定时器配置

quartz:石英,表达精确准时的意思。

quartz-all-1.6.1.jar 主要用于定时任务管理。


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
<!-- 可设置配置文件配置时间 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config.properties</value>
</list>
</property>
</bean>
<!-- 要调用的工作类 -->
<bean id="quartzJobBean" class="com.spring.web.util.TaskWord"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="quartzJobBean" />
<!-- 调用类中的方法 -->
<property name="targetMethod" >
<value>work</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="quertzOne" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobtask" />
<!-- cron表达式 -->
<!--设置运行时间 0 0 12 * * ? 表示中午12点-->
<property name="cronExpression">
<!-- <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> -->
<value>0 0/5 * * * ?</value>
</property>
</bean>

<!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="quertzOne"/>
</list>
</property>
</bean>

</beans>

然后再applicationContext.xml中导入此配置文件即可

     <!-- 任务调度配置 -->
<import resource="taskContext.xml"/>

对应的 定时任务类


package com.spring.web.util;

import org.apache.log4j.Logger;

/**
*
* @see quartz任务调度 执行方法
*/
public class TaskWord
{
private final Logger logger = Logger.getLogger(TaskWord.class);
public void work()
{
logger.info("******************************************************");
logger.info("** **");
logger.info("** Quertz+spring **");
logger.info("** Author : 灵台方寸小道士 **");
logger.info("** Five senconds again **");
logger.info("** **");
logger.info("******************************************************");
}
}

每隔五分钟打印一次定时任务。

主要设置cronExpression参数











































位置 时间域名  取值范围 特殊字符
1 0-59

,*-/

星号(*):可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”

2 分钟 0-59

,*-/

问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符

3 小时 0-23

,*/-

减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12

4 日期 1-31

,*/-? L W C

逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五

5 月份 1-12

,*/-

/:x/y表达一个等步长序列,x为起始值,y为增量步长值。如在分钟字段中使用0/15,则表示为0,15,30和45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y

6 星期 1-7

,*/-? L C #

L:该字符只在日期和星期字段中使用,代表“Last”的意思,但它在两个字段中意思不同。L在日期字段中,表示这个月份的最后一天,如一月的31号,非闰年
二月的28号;如果L用在星期中,则表示星期六,等同于7。

但是,如果L出现在星期字段里,而且在前面有一个数值X,则表示“这个月的最后X天”,例 如,6L表示该月的最后星期五

7 年(可选) 1970-2099

,*/-

W:该字符只能出现在日期字段里,是对前导日期的修饰,表示离该日期最近的工作日。例如15W表示离该月15号最近的工作日,如果该月15号是星期六,则匹配
14号星期五;如果15日是星期日,则匹配16号星期一;

如果15号是星期二,那结果就是15号星期二。但必须注意关联的匹配日期不能够跨月,如你指定
1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只能指定单一日期,而不能指定日期范围;

quartz_spring 定时器配置,布布扣,bubuko.com

时间: 2024-10-13 19:14:53

quartz_spring 定时器配置的相关文章

Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解

原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解 代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm 有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; p

定时器配置 中断配置 GPIO

GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO

STM32普通定时器配置PWM的问题

oid TIM3_Init(void) { TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; TIM_OCInitTypeDef  TIM_OCInitStructure; /* PWM信号电平跳变值 */ //    u16 CCR1= 36000; //    u16 CCR2= 36000; /*PCLK1经过2倍频后作为TIM3的时钟源等于72MHz*/ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,

STM32通用定时器配置

一.STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生.其它6个为普通定时器,时钟由APB1的输出产生. 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分. 下面以通用定时器2的时钟说明这个倍频器的作用:当APB1的预分频

Spring定时器配置的两种方法

1. <bean id="locationTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <bean id="locationTimerJob" class="org.springframework.schedul

增量式编码器定时器配置和速度计算的处理方法

MCU定时器的CNT寄存器一般是16位的,使用定时器的编码器正交接口功能,计数周期有两种配置方法:1.计数周期与编码器脉冲数相等 TIM_TimeBaseStructure.TIM_Period = (uint16_t)(PulseNumber) - 1u; 好处就是转子电角度获取不用做处理,由当前CNT计数值可以很方便对应到转子电角度. 缺点则是圈数计数溢出时,位置计数没有达到有符号2进制的溢出但被强制处理,也就是说位置计数不能在数据格式里完成连续循环,这样在溢出点前后数据就不连贯.如果使用位

两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportTask extends TimerTask{ @Override public void run() { ... } } 在Spring定义 ... 配置Spring定时器 <bean id="scheduleReportTask" class="org.springfra

STM32定时器配置

void TIM1_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //①时钟 TIM1 使能 //定时器 TIM1 初始化 TIM_TimeBaseStructure.TIM_Period = arr; //设置自动

STM32CubeMX工程定时器配置

STM32CubeMX生成工程 选择自己的芯片型号 配置RCC寄存器时钟为外部晶振 单击芯片配置GPIO,选择输出方式,重命名标签等 进入时钟配置,本人使用的为8M外部晶振作为时钟源,PLL时钟源选择HSE,经PLL倍频后为72M,系统时钟输入选择为PLLCLK,AB1为低速通道,所以要2分频到36M 之后开始配置TIM1和TIM2,他们分属于APB1和APB2,可以设置预分频,计数模式,溢出计数次数等 TIM1设置为1s产生一个中断,TIM2设置同理 (PS:设置减1是因为ACC是由0开始计数