- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
springtask.
9.3 任务计划服务
对于任务计划定时执行的工作,JDK 的标准API 提供有java.util.Timer 与java.util.TimerTask 类,Spring 则对它提供了抽象封装,让您可以善用Spring 的容器管理功能,然而Timer 功能有限,只能指定任务与任务之间的周期(Period ),无法指定某个时间点定时执行任务,您可以使用Quartz(/quartz/),它提供了更多的任务计划功能,而Spring 对Quartz 进行了封装,在使用上更加方便。
9.3.1 使用TimerTask
要定义一个计划任务(Task ),可以继承java.util.TimerTask类,例如:
TimerTaskDemo DemoTask.java
接着可以使用Spring 的org.springframework.scheduling.timer. ScheduledTimerTask 来定义任务的执行周期,例如:
TimerTaskDemo beans-config.xml
?ref bean=scheduledTimerTask/
?/list
?/property
?/bean
?/beans?
在ScheduledTimerTask 类的period 属性中,定义的单位是毫秒,因此根据以上的定义,将每60 分钟执行一次所定义的任务,而delay 属性定义了Timer 启动后,第一次执行任务前要延迟多少毫秒。
定义好的ScheduledTimerTask 要使用org.springframework.scheduling.timer. TimerFactoryBean类来加入所有的计划任务,接下来只要Spring 容器启动读取完定义文件,就会开始进行所排定的任务,例如:
TimerTaskDemo TimerTaskDemo.java
根据Bean 定义文件的内容,这个程序在启动后10 秒会执行第一次任务,之后每60 分钟执行一次任务。
9.3.2 使用MethodInvokingTimerTaskFactoryBean
使用Spring 时,并不一定要继承TimerTask 来定义一个任务,Spring 提供org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean,可以直接指定执行某个对象的方法,例如可以改写一下TimerTaskDemo 项目中的DemoTask 类,这次不用继承TimerTask 类:
TimerTaskDemo2 DemoTask.java
接着在Bean 定义文件中使用MethodInvokingTimerTaskFactoryBean即可,例如:
TimerTaskDemo2 beans-config.xml
??? bean id=scheduledTimerTask
??????????? class=org.springframework.scheduling.
→ timer.ScheduledTimerTask
???????? property name=timerTask
ref bean=timerTaskBean/
???????? /property
??? property name=period
value5000/value
???????? /property?
?????? property name=delay
value1000/value
???????? /property
??? /bean
??? bean id=timerFactoryBean
?????????? class=org.springframework.scheduling.
→ timer.TimerFactoryBean
???????? property name=scheduledTimerTasks
?list
? ref bean=scheduledTimerTask/
?/list
?????? /property
??? /bean
?/beans
执行时可以直接使用TimerTaskDemo 项目中的TimerTaskDemo 类,在底层,
MethodInvokingTimerTaskFactoryBean会自动建立TimerTask 的实例以执行目标对象上的指定方法。
9.3.3 使用Quartz
JDK 标准API 中所提供的Timer 功能有限,只能指定任务与任务之间的周期(Period),
无法指定某个时间点来定时执行任务,您可以使用Quartz(/quartz/),
它提供了更多的任务计划功能,而Spring 则对Qu
您可能关注的文档
- SPA工程主要设备..doc
- SPA部各级员工岗位要求..doc
- SPC产品检测程序..doc
- SPC统计制程管制..doc
- SPC知识介绍--统计过程控制..doc
- SPC统计过程控制程序..doc
- SPC统计制程管理..doc
- SPC统计过程控制实战训练营..doc
- SPD浪涌保护器..doc
- SPC统计过程控制系统..doc
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)