test.timerTask.SayHelloTaskUsingQuartzclass="org.springframework.scheduling.quartz.SimpleTriggerBean">10003000class="org.springframework.sched" />
文档库 最新最全的文档下载
当前位置:文档库 › spring 定时器

spring 定时器

spring 定时器
spring 定时器

spring 定时器

先来看配置文件

class="org.springframework.scheduling.quartz.JobDetailBean">

test.timerTask.SayHelloTaskUsingQuartz

class="org.springframework.scheduling.quartz.SimpleTriggerBean">

1000

3000

class="org.springframework.scheduling.quartz.CronTriggerBean">

0 49 15 * * ?

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

当有任务触发时,spring会去调用quartzJob的execute()方法,在这个方法里我们就可以写一些我们自己的业务操作。

上面只是说了定时和任务出发时的处理,下面再看看如何动态的添加定时任务

package com.actmaps.scheduler;

import java.text.ParseException;

import https://www.wendangku.net/doc/6713367051.html,mons.logging.Log;

import https://www.wendangku.net/doc/6713367051.html,mons.logging.LogFactory;

import org.quartz.CronTrigger;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SimpleTrigger;

import org.quartz.impl.StdSchedulerFactory;

/**

* TODO 设置定时任务的控制类

* @author PHeH

* Created On 16:11:24

*/

public class Schedule{

/**

* TODO 添加一个新的触发器

* @return

* @author PHeH

* Created On 2006-6-9 16:24:54

*/

public boolean insertTrigger()

{

try {

Scheduler scheduler = (Scheduler)

StdSchedulerFactory.getDefaultScheduler( );

CronTrigger newCronTrigger = new CronTrigger();

try {

newCronTrigger.setName("newCronTrigger");

newCronTrigger.setCronExpression(this.formatQuartzString()); newCronTrigger.setJobName("quartzJob");

} catch (ParseException e) {

e.printStackTrace();

log.error("解析触发器字符串格式出错:"+e.getMessage());

}

scheduler.scheduleJob(newCronTrigger);

} catch (SchedulerException e1) {

e1.printStackTrace();

log.error("添加新触发器时发生SchedulerException异常:

"+e1.getMessage());

}

return false;

}

}

对于复杂触发器的cronExpression,可借鉴linux的cron。

关于cronExpression的介绍:

字段允许值允许的特殊字符

秒0-59 , - * /

分0-59 , - * /

小时0-23 , - * /

日期1-31 , - * ? / L W C 月份1-12 或者 JAN-DEC , - * /

星期1-7 或者 SUN-SAT , - * ? / L C # 年(可选)留空, 1970-2099 , - * /

表达式意义

"0 0 12 * * ?" 每天中午12点触发

"0 15 10 ? * *" 每天上午10:15触发

"0 15 10 * * ?" 每天上午10:15触发

"0 15 10 * * ? *" 每天上午10:15触发

"0 15 10 * * ? 2005" 2005年的每天上午10:15触发

"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * *

每两个小时

0 */2 * * *

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3

1月1日早上4点

0 4 1 1 *

这里的JobDetail使用的是JobDetailBean,这样直接实例化

test.timerTask.SayHelloTaskUsingQuartz。它存在一个问题,当

test.timerTask.SayHelloTaskUsingQuartz需要使用依赖注入时,显然,这样直接实例化是没法进行注入的。spring还提供了另一种方法,如下

execute

Spring提供的三种定时任务机制及其比较

Spring提供的三种定时任务机制及其比较 定时任务的需求在众多应用系统中广泛存在,在Spring中,我们可以使用三种不同的定时机制,下面一一描述并加以比较 1. 基于Quartz的定时机制

下面详细解释这个类图中涉及的关键类及其使用场景 1.1. SchedulerFactoryBean 这是Spring中基于Quartz的定时机制入口,只要Spring容器装载了这个类,Quartz定时机制就会启动,并加载定义在这个类中的所有trigger Spring配置范例: [xhtml]view plaincopy 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 1.2. CronTriggerBean 实现了Trigger接口,基于Cron表达式的触发器 这种触发器的好处是表达式与linux下的crontab一致,能够满足非常复杂的定时需求,也容易配置

Spring配置范例: [xhtml]view plaincopy 1. 2. 3. 4. 1.3. SimpleTriggerBean 该类也实现了Trigger接口,基于配置的定时调度 这个触发器的优点在于很容易配置一个简单的定时调度策略 Spring配置范例: [xhtml]view plaincopy 1. 2. 3. 4. 5. 6.3600000 7. 8. 9.86400000 10. 11.

Spring定时器的使用

定时执行任务,这是项目中常用的东西,今天我们来做一个使用Spring定时器进行任务定制的小例子,仅供学习! 1首先要增加相应的JAR。 因为这是一个小例子,使用的JAR包不是很多,用到了spring.jar, quartz-all-1.6.5.jar,quartz-1.5.2.jar,commons-logging.jar, log4j-1.2.14.jar!不用关心版本,从你下载到的Spring中找即可。 定义web.xml配置文件 要在配置文件中定义Spring和Log4j的使用。具体看工程即可。重点关注的是如果你做例子时使用了web-app_2_5.xsd,那么在部分服务器上是跑不起 来的。 Xml代码 1 1 1 1 1 1index.jsp 1 1

1 1 1contextConfigLocation 1/WEB-INF/spring.xml 1 1 1 1log4jConfigLocation 1/WEB-INF/classes/log4j.properties 1 1 1 1 1 1org.springframework.web.util.Log4jConfigListener 1 1 1 1 1 1org.springframework.web.context.ContextLoaderListener 1

SpringBoot实现定时任务

SpringBoot 定时任务@Scheduled实现定时任务 在启动项中加入@EnableScheduling 在定时任务中加入@Component交于Spring管理 使用@Scheduled(fixedDelay = 5000) 5秒跑一次任务 支持支持cron表达式

按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 L * ?" 每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 有些子表达式能包含一些范围或列表 例如:子表达式(天(星期))可以为“MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” “*”字符代表所有可能的值 因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天 “/”字符用来指定数值的增量 例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

【SpringBoot】廿五、SpringBoot中使用Quartz管理定时任务

【SpringBoot】廿五、SpringBoot中使用Quartz管理定 时任务 2020-07-21 15:55:47 定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的Token 信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任务的时候,就需要去改动代码,还得启停服务器,这是非常不友好的事情 直至遇见 Quartz,利用图形界面可视化管理定时任务,使得我们对定时任务的管 理更加方便,快捷 一、Quartz 简介 Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和 J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个 作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。 二、开发前戏 1、引入 maven 依赖 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-quartz 这里引入了 web 的依赖,以及 Quartz 的依赖,其余依赖请根据需求自行引入

Quartz+spring定时器实例用

Spring+Quartz定时器例子如下: 1. javabean类 在Test.QuartzJob中 1.package Test; 2. 3.public class QuartzJob { 4.public void work() 5. { 6. System.out.println("Quartz的任务调度!!!"); 7. } 8. } 1. 2. 7. 8. 9. 10. 11. 13. 14. 15. 16. 17. 18. 19.work 20. 21. 22. 23. 25. 26.

Spring定时任务配置

Spring框架中的定时器如何使用和配置 1.包 ?spring-2.0.6.jar Spring框架的核心包 ?jta.jar 会用到包中的usertransaction,具体什么用此处暂时不论 ?quartz-1.6.0.jar 会用到CronTrigger这个类,通过表达式实现精确的定时?commons-logging-1.1.1.jar 日志管理包 ?commons-collections-3.2.1.jar 集合工具包 2.首先是配置你要定时加载的目标类 第一种方法:xml方式,例如: 第二种方法:基于注解的方式。例如:@Service(smsSendService) 注:此注解用于Service层 3.配置你的定时器详情 解释: p:targetObject-ref:指向你要定时加载的目标类。 p:targetMethod:指向定时加载目标类中需要执行的方法。即定时执行smsSendService类的autoSmsTime()方法。 p:concurrent="false":表示不并发操作。对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job 就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将不会在第一个job完成之前开始。 注意:smsSendService类的autoSmsTime()方法没有参数,如果smsSendService有两个方法autoSmsTime()和autoSmsTime(String argument),则spring只会去执行无参的autoSmsTime().例如: 1 2 3 public void autoSmsTime(){ System.out.println("无参......"); } 4.配置定时器时间间隔

Spring集成Quartz定时任务框架介绍和Cron表达式详解

在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。 我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。 使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。 一、增加所依赖的JAR包 1、增加Spring的Maven依赖 org.springframework spring-webmvc 3.0.5.RELEASE 2、增加Quartz的Maven依赖 org.quartz-scheduler quartz 1.8.4 二、增加定时业务逻辑类 publicclass ExpireJobTask { /** Logger */ privatestaticfinal Logger logger = LoggerFactory.getLogger(ExpireJobTask.class); /** * 业务逻辑处理 */ publicvoid doBiz() { // 执行业务逻辑 // ........

springquartz实现定时任务的配置方法

Spring+Quartz实现定时任务的配置方法 第一步:.导入相关的jar包 (1)spring.jar (2)quartz-1.6.0.jar (3)相关包 commons-collections-3.2.jar ; commons-logging-1.1.1.jar; log4j-1.2.16.jar 第二步:创建一个类来定义工作 定义Quartz工作的第一步是创建一个类来定义工作。要做到这一点,你需要从Spring 的QuartzJobBean中派生子类。 第三步:配置JobDetail

值得注意的是,在这里你并没有直接声明一个TopTenTask Bean,而是声明了一个JobDetailBean。这是使用Quartz时的一个特点。 JobDetailBean是Quartz的org.quartz.JobDetail的子类,它要求通过jobClass属性来设置一个Job对象。 使用Quartz的JobDetail中的另一个特别之处是TopTenTask的timeout属性是间接设置的。JobDetail的jobDataAsMap属性接受一个java.util.Map,其中包含了需要设置给jobClass的各种属性。 在这里,这个map包含了一个键值为timeout。当JobDetailBean实例化时,它会将5注入到EmailReportJob的timeout属性中。 第四步:配置Trigger 工作已经被定义好了,接下来你需要调度这个工作。 Quartz的org.quartz.Trigger类描述了何时及以怎样的频度运行一个Quartz工作。 Spring提供了两个触发器,SimpleTriggerBean和CronTriggerBean。 SimpleTriggerBean与ScheduledTimerTask类似。你可以用它来指定一个工作应该以怎样的频度运行,以及(可选地)在第一次运行工作之前应该等待多久。 例如,要调度报表工作每24小时运行一次,第一次在1小时之后开始运行,可以按照以下方式进行声明: 3600000 86400000 属性jobDetail装配了将要被调度的工作,在这个例子中是topTenTask Bean。属性repeatInterval告诉触发器以怎样的频度运行这个工作(以毫秒作为单位)。这里,我们

高级软件工程师第二套试题

一、单项选题(共60题,每题1分) (l)Struts 应用框架是 B 模式的实现。 A) JSP Modell B)MVC C)DAO D)Facade (2)相比Struts 框架,JSP 框架具备_ ___等Struts 框架所不具备的特 点。 A) 页面导航 B)表单验证 C )国际化应用 D)组件时间模型 (3)针对J2EE 企业应用来讲,最简单的 Wed 服务器系统有两个参与者, 服务的接 口和实现, 后者使用Web 服务。 (4)下面对 Web 应用开发中Servlet 组件说法错误的是 _C 。 A) Servlet 是按照接受请求/返回响应的模式工作的 C )在Struts 框架中,Servlet 充当模 型组 件 B) 运行于Servlet 容器中,是被动态加载的 D )在 Struts 框架中,Servlet 充当控制器组 件 ⑸下列关于Struts 框架的说法中,不正确的是 D_ 。 A) Struts 实质是JSPModel2的基础上实现的一个 MVC 框架 B) 在Struts 框架中,视图是 由一组JSP 文件组成 C) 在 Struts 框架中,控制器 是由ActiongServlet 和Action 来实现 D) 在Struts 仅仅可以在服务器端运行,仅仅能 通过ActionForm 中的validate()方法能对提 交的表单 数据进行验 证 ⑹下列选项中不能获 得Locale 实例的有_D __________ 标签的编码类型"method ”属性必须设 B) POST C)multipart/form-data D)true (8) Transaction 接口主要用于管理事务。它的哪个方法用于事务的提交 __C A) wasRollBack()方法 C)commit()方法 B) rollback 方法 D ) wasCommitted()方法 (9) Transaction 接口主要用于管理事务。 它的哪个方法用于事务的回滚 _B_ A) wasRollBack()方法 C)commit()方法 B) rollback 方法 D ) wasCommitted()方法 (10)在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素为它的根 元素__A- A) vhinernate-configuration> 元 素 C ) 元素 B) 元素 D ) 元素 (11) (11)在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素来配置 映射文件的 .1,前者提供 A) 服务提供者和服务请求者 B) 服务代理商和服务请求者 C) 服务提供者和服务代理商 D) 服务请求者和服务代理商 A) Locale locale=new Locale("ch","CH"); B) Locale locale=Locale.CHINA; C) Locale locale=request.getLocale(); D) Locale locale=response.getLocale(); (7)如果要创建用于上传文件的表单, 置为 C_ ° A ) GET

Spring定时器在SSH框架中的应用.

Spring定时器在SSH框架中的应用 ---Spring调度任务 本课题参考自《Spring in action》。并非应用系统中发生的所有事情都是由用户的动作引 起的。有时候,系统自己也需要发起一些动作。例如,集抄系统每天早上六点把抄表数据传送给营销系统。我们有两种选择:或者是每天由用户手动出发任务,或者让应用系统中按照预定的计划自动执行任务。 在Spring中有两种流行配置:Java的Timer类和OpenSymphony的Quartz来执行调度任务。下面以给商丘做的接口集抄900到中间库的日冻结数据传输为例: 1. Java Timer调度器 首先定义一个定时器任务,继承java.util.TimerTask类实现run方法 import java.util.TimerTask; import xj.service.IJdbc1Service; import xj.service.IJdbc2Service; public class DayDataTimerTask extends TimerTask{ private IJdbc2Service jdbc2Service=null; private IJdbc1Service jdbc1Service=null; public void run({ SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"; System.out.println("日冻结转接任务开始时间:"+df.format(Calendar.getInstance(.getTime(; System.out.println("日冻结转接任务结束时间:"+df.format(Calendar.getInstance(.getTime(; } //通过set方法获取service服务,如果没有该方法,则为null public void setJdbc2Service(IJdbc2Service jdbc2Service { this.jdbc2Service = jdbc2Service; } public void setJdbc1Service(IJdbc1Service jdbc1Service { this.jdbc1Service = jdbc1Service;

Spring定时器配置(XML和注解)

Spring配置定时器(注解+xml)方式—整理 一、注解方式 1.在Spring的配置文件ApplicationContext.xml,首先添加命名空间 xmlns:task="https://www.wendangku.net/doc/6713367051.html,/schema/task" https://www.wendangku.net/doc/6713367051.html,/schema/task https://www.wendangku.net/doc/6713367051.html,/schema/task/spring-task-3.1.xsd 2.最后是我们的task任务扫描注解 3.spring扫描位置 4.写自己的定时任务 @Component//import https://www.wendangku.net/doc/6713367051.html,ponent; public class MyTestServiceImpl implements IMyTestService{ @Scheduled(cron="0/5****?")//每5秒执行一次 public void myTest(){ System.out.println("进入测试"); } } 注意:定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true) 二、XML方式 1.在spring配置文件中创建bean,创建schedule 2.在spring配置文件中创建bean,创建你的triggers 3.在spring配置文件中创建bean,指定定时器作用在那个类那个方法上面

java中spring与Quartz 整合定时任务

现在想要获得在特定时间或者指定时间执行相应功能 有两种做法 在applicationContext.xml中写入如下Bean 1000 3600000 true 然后写SampleTask类,如下: package com.css.wam.portlet;

钟表行业专业术语中英文对照

专业术语解释 (数学或飞机油 量)计算功能 slide rule 12个面色彩12-facet chaton 12小时子表盘12-hour recorder(register) 20 度防水20 ATM water-resistant depth sensor/depth meter A device on a divers' watch that determines the wearer's depth by measuring water pressure. It shows the depth either by analog hands and a scale on the watch face or through a digital display. diving watch A watch that is water resistant to 200M. Has a one way rotating bezel and a screw-on crown and back. Has a metal or rubber strap (not leather). Has a sapphire crystal and possibly, a wet-suit extension. EL薄膜EL film escapement Device in a mechanical movement that controls the rotation of the wheels and thus the motion of the hands. Head a tapered box with prongs, which holds a stone in a mounting LCD部件LCD part LED部件LED part UV紫外光灯箱UV ultra-violet ray lampbox 按钮push button 按实物做Make exactly as shown sample. 奥姆斯卡擒纵机 构 Ormskirt escapement 巴塞尔钟表展Basel Watch Fair 霸的crown 具有上条以及拨针等作用的旋钮 霸管crown tube 霸芯及驳管stem and stem extension 白金platinum 摆锤rotor 摆夹板balance bridge (cock) 摆轮balance 摆钟pendulum 摆轴balance staff 半成品ebauche 半成品机芯movement blank 半导体硅片semiconductor silicon wafer

java定时任务

Java定时任务的实现 一、通过java本身提供的接口实现 关键词:监听器(Listener)和定时器(Timer)任务(Task)。 方式: 首先:建立一个监听器 MyListener import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyListener implements ServletContextListener { private Timer timer = null; public void contextInitialized(ServletContextEvent event) { timer = new Timer(true); //设置任务计划,启动和间隔时间 timer.schedule(new MyTask(), 0, 86400000); } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); } } 监听器web.xml配置 com.fastunit.samples.listener.MyListener 任务MyTask import java.util.TimerTask; public class MyTask extends TimerTask { // 继承TimerTask public void run() { // 此处添加具体需要执行的任务代码 } } 上面的代码虽然简单实用,但是在web项目中的时候为了避免无法加载到的问题,在web

spring多个定时任务quartz配置

spring多个定时任务quartz配置spring多个定时任务quartz配置2010-12-08 1034 A.M.xml version1.0encodingUTF-8 beans xmlns bean idjob1classcom.job.Job1///任务1 bean idjob2classcom.job.Job2///任务2 bean idjobDetail_1 classorg.springframework.scheduling.quartz.MethodInvokingJo bDetailFactoryBean property nametargetObject ref beanjob1/ /property property nametargetMethod value jobMethod1/value//执行的方法/property /bean bean idjobDetail_2 classorg.springframework.scheduling.quartz.MethodInvokingJo bDetailFactoryBean property nametargetObject ref beanjob2/ /property property nametargetMethod value jobMethod2/value /property /bean bean idcronTrigger_1 classorg.springframework.scheduling.quartz.CronTriggerBean property namejobDetail ref beanjobDetail_1/ /property property namecronExpression value 00 0/value//每天凌晨12点执行一次/property /bean bean idcronTrigger_2 classorg.springframework.scheduling.quartz.CronTriggerBean property namejobDetail ref beanjobDetail_2/ /property property namecronExpression value 00/1/value//每小时执行一次 /property /bean bean classorg.springframework.scheduling.quartz.SchedulerFactoryB

如何在Spring中配置定时任务

如何在Spring中配置定时任务 首先,如果你在web.xml文件中的配置是这样的: contextConfigLocation /WEB-INF/classes/applicationContext-*.xml 那么需要在工程下创建一个以applicationContext- 为开头的xml文件 eg:applicationContext-jobconfig.xml xml的头和结尾部分跟其他spring配置文件相似,就不赘述,正文如下: runMethodName(定时执行的方法名) 0 0/20 * * * ?(定时的时间配置)

spring定时任务

Chapter 23. Spring中的定时调度(Scheduling)和线程池(Thread Pooling) 23.1. 简介 Spring包含了对定时调度服务的内置支持类。当前,Spring支持从JDK1.3开始内置的Timer类和Quartz Scheduler(https://www.wendangku.net/doc/6713367051.html,/quartz/)。二者都可以通过FactoryBean,分别指向Timer或Trigger实例的引用进行配置。更进一步,有个对Quartz Scheduler和Timer都有效的工具类可以让你调用某个目标对象的方法(类似通常的MethodInvokingFactoryBean操作)。Spring 还包含有用于线程池调度的类,它针对Java 1.3,1.4,5和JEE环境的差异都进行了抽象。 23.2. 使用OpenSymphony Quartz 调度器 Quartz使用Trigger, Job以及JobDetail等对象来进行各种类型的任务调度。关于Quartz的基本概念,请参阅https://www.wendangku.net/doc/6713367051.html,/quartz。为了让基于Spring的应用程序方便使用,Spring提供了一些类来简化uartz的用法。 23.2.1. 使用JobDetailBean JobDetail对象保存运行一个任务所需的全部信息。Spring提供一个叫作JobDetailBean的类让JobDetail能对一些有意义的初始值进行初始化。让我们来看个例子: Job detail bean拥有所有运行job(ExampleJob)的必要信息。通过job的data map来制定timeout。Job的data map可以通过JobExecutionContext(在运行时刻传递给你)来得到,但是JobDetailBean同时把从job的data map中得到的属性映射到实际job中的属性中去。所以,如果ExampleJob中包含一个名为timeout的属性,JobDetailBean将自动为它赋值:

相关文档
相关文档 最新文档