知识大全 Spring定时器的两种实现方式
Posted 属性
篇首语:人生在勤,不索何获。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring定时器的两种实现方式相关的知识,希望对你有一定的参考价值。
Spring定时器的两种实现方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
有两种流行Spring定时器配置 Java的Timer类和OpenSymphony的Quartz
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= springframework scheduling timer ScheduledTimerTask >
<property name= timerTask ref= reportTimerTask />
<property name= period >
<value> value>
property>
bean>
timerTask属性告诉ScheduledTimerTask运行哪个 代表 个小时
启动Spring定时器
Spring的TimerFactoryBean负责启动定时任务
<bean class= springframework scheduling timer TimerFactoryBean >
<property name= scheduledTimerTasks >
<list><ref bean= scheduleReportTask />list>
property>
bean>
scheduledTimerTasks里显示一个需要启动的定时器任务的列表
可以通过设置delay属性延迟启动
<bean id= scheduleReportTask class= springframework scheduling timer ScheduledTimerTask >
<property name= timerTask ref= reportTimerTask />
<property name= period >
<value> value>
property>
<property name= delay >
<value> value>
property>
bean>
这个任务我们只能规定每隔 小时运行一次 无法精确到某时启动
Quartz定时器
首先继承QuartzJobBean类实现executeInternal方法
import quartz JobExecutionContext; import quartz JobExecutionException; import springframework scheduling quartz QuartzJobBean;
public class EmailReportJob extends QuartzJobBean
protected void executeInternal(JobExecutionContext arg )
throws JobExecutionException
在Spring中定义
<bean id= reportJob class= springframework scheduling quartz JobDetailBean >
<property name= jobClass >
<value>EmailReportJobvalue>
property>
<property name= jobDataAsMap >
<map>
<entry key= courseService >
<ref bean= courseService />
entry>
map>
property>
bean>
在这里我们并没有直接声明一个EmailReportJob Bean 而是声明了一个JobDetailBean 这个是Quartz的特点 JobDetailBean是Quartz的 quartz JobDetail的子类 它要求通过jobClass属性来设置一个Job对象
使用Quartz的JobDetail中的另一个特别之处是EmailReportJob的courseService属性是间接设置的 JobDetail的jobDataAsMap属性接受一个Map 包括设置给jobClass的各种属性 当 JobDetailBean实例化时 它会将courseService Bean注入到EmailReportJob 的courseService 属性中
启动定时器
Quartz的 quartz Trigger类描述了何时及以怎样的频度运行一个Quartz工作 Spring提供了两个触发器SimpleTriggerBean和CronTriggerBean
SimpleTriggerBean与scheduledTimerTasks类似 指定工作的执行频度 模仿scheduledTimerTasks配置
<bean id= simpleReportTrigger class= springframework scheduling quartz SimpleTriggerBean >
<property name= jobDetail ref= reprotJob />
<property name= startDelay >
<value> value>
property>
<property name= repeatInterval >
<value> value>
property>
bean>
startDelay也是延迟 个小时启动
CronTriggerBean指定工作的准确运行时间
<bean id= cronReportTrigger class= springframework scheduling quartz CronTriggerBean >
<property name= jobDetail ref= reprotJob />
<property name= cronExpression >
<value> * * ?value>
property>
bean>
属性cronExpression告诉何时触发 最神秘就是cron表达式
Linux系统的计划任务通常有cron来承担 一个cron表达式有至少 个(也可能 个)有空格分隔的时间元素 从左到右
秒 分 小时 月份中的日期( ) 月份( 或JAN DEC) 星期中的日期( 或SUN SAT) 年份( )
每个元素都显示的规定一个值(如 ) 一个区间( ) 一个列表( )或一个通配符(*) 因为 和 这两个元素是互斥的 因此应该通过设置一个问号(?)来表明不想设置的那个字段 / 如果值组合就表示重复次数( / 表示每 秒重复 次)
启动定时器
<bean class= springframework scheduling quartz SchedulerFactoryBean >
<property name= triggers >
<list><ref bean= cronReportTrigger />list>
property>
bean>
cha138/Article/program/Java/hx/201311/26716相关参考
Java与Oracle的两种连接方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第一种方式通
Spring定时器的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下面我们来看看关于Spr
VB中文件操作的两种方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 文本文件的操作 此种方
进入RMAN恢复管理器的两种方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 进入RMAN恢复
我们都知道鱼鳞病是一种皮肤干燥病症,很多患者都单纯的认为这是一种常见的皮肤病,殊不知鱼鳞病其实还是一种遗传疾病,因此做为鱼鳞病患者要特别注意这种疾病的遗传性。下面我们就和大家了解一下鱼鳞病常见的两种遗
C#多线程操作控件的两种安全方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 实现的功能是
在java中我们可以通过两种方式来获取随机数(generatingarandomnumber)一种是大家熟悉的javalangMathRandom()静态方法另一种
鱼鳞病会遗传但不会传染,说到遗传对于准妈妈或准爸爸来说是比较担心的问题,他们都不希望自己的孩子刚生下来就受鱼鳞病的折磨,鱼鳞病这类皮肤病的遗传主要是染色体的基因异常所导致的,那么鱼鳞病的遗传方式有哪些
鱼鳞病会遗传但不会传染,说到遗传对于准妈妈或准爸爸来说是比较担心的问题,他们都不希望自己的孩子刚生下来就受鱼鳞病的折磨,鱼鳞病这类皮肤病的遗传主要是染色体的基因异常所导致的,那么鱼鳞病的遗传方式有哪些
用Springframework实现定时器功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 采