Quartz是一个任务调度框架,任务调度是指按照预先指定好的时间、时间间隔或执行次数来自动执行任务,比如每天早上6:00从控制台上输出 “早上好”。多数的Web项目都具有任务调度的任务,而在java项目中实现任务调度的方式有很多种,这一点在IBM文献《几种任务调度的
Java 实现方法与比较》中已经陈述并举例了。此文简单整理一下资源,并简做介绍其使用及其与Spring的集成。
在Quartz官网上你能够找到在线教程、API和实例、jar包等信息。任务调度过程在quartz中牵涉它的两大基本单元,一个是作业(可执行的任务),另一个是触发器。
要定期执行的作业需要实现org.quartz.job接口,我们要执行的code就在execute方法中。而quartz提供了三种可用的触发器,在《理解Quartz触发器>>。针对触发器CronTrigger值得学习一下Corn表达式,它能够帮助我们灵活的配置具体的日程安排。
简单说Corn表达式包括七个字段,分别是秒 分 时 月内日期 月 周内日期 年。其中年字段可以忽略不写,即那一年都执行,而其他字段就指明了具体是哪个月哪一天哪个时间执行。需要着重理解一下月内日期和周内日期,分别指几号和周几,这两个指只需要指定一个值,如果在月内日期指定为1号,在周内日期指定为五,但十月一却是周六,发生冲突。具体corn表达式的参数取值和一些特殊符号(-*/#?WLC)用法参考《Quartz
Cron Expression》一文。
在java程序中举一个例子。首先写一个Job类,如下所示:
之后我们写一个java类配置,并启动调度器,此类代码注释也大致说明了启动调度计划的大致步骤,代码如下所示:
此时运行这个java类即可每天执行定点执行咱们的任务了。如果我们的作业很多,而且需要在j2EE项目发布运行后就自定开启调度器而不是像上面需要手动启动,我们该如何做呢。
一个简单的做法可以通过配置web.xml文件,启动服务器时通过初始化servlet来完成启动调度器过程,这个方法的原理应用到quartz与spring集成上,只需要在web.xml文件中配置org.springframework.web.context.ContextLoaderServlet为应用服务器启动时自动运行就可以了。使用spring和quartz集成的好处还有很多。Spring本身具有IOC容器和工厂的作用,这样以来,上述代码中Review类对JobService类的依赖关系以及JobService类对Job接口的依赖都可以屏蔽掉,同时不需要再实际写出Review类,只需要在applicationContext.xml文件中进行一下配置就可以了。同样,这种配置还支持启动多任务,此处只对上面的例子进行改进。
Job类:
applicationContext.xml文件,它包含了上述Review类的功能:
Web.xml文件的配置如下所示,它实现了应用程序服务器启动时自动启动上述配置调度器:
分享到:
相关推荐
Spring集成quartz跑定时任务实例 自己写的例子并为实现job 有测试的主函数,请参考http://www.blogjava.net/baoyaer/articles/155645.html 博客信息 看此代码,项目里分为两大块,com文件夹下 为上面博客相关学习...
spring的quartz使用实例,spring的quartz使用实例
好像很多人整合出现了问题,所以抽个demo出来 是一个demo包含源码和lib 在tomcat下可以执行
spring 集成quartz定时任务 用数据库实现quartz的集群
各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定 用户解锁任务。对于一个典型的MIS系统来说,在每月1号凌晨统计上...
NULL 博文链接:https://vista-move.iteye.com/blog/2274246
spring和quartz1.x及quartz2.x集成,具体见博客
spring+quartz demo,下载后即可运行,很强大哦....
此资源中为你提供了使用quartz所需的jar包,另包含一个Demo,以及cronExpression表达式的说明。 * 所需的jar包在lib目录中。
spring集成quartz使用需要的jar包下载。
spring2.0 使用 Quartz 必备包 里面有: quartz-all-1.5.2.jar spring-support.jar 适合:SSH框架 spring2.0 strut2.0 hibernate3.2等
quartz+spring集成完整开发富含文档cron表达式的配置说明,执行系统的定时器任务。可以直接集成到你的SSH框架中,完成复杂的定时器功能
Java_Spring与Quartz的整合
quartz与spring集群, quartz与spring,quartz与spring
spring-boot-quartz-demo, 使用Quartz框架的样例 Spring Boot 应用程序 spring-boot-quartz-demo使用Quartz框架的样例 Spring Boot 应用程序基于 https://gist.github.com/jelies/5085593 附加功能( 断点,失火处理...
spring集成quartz支持的扩展jar包,spring版本4.0.3
spring boot集成quartz定时器,job支持spring的依赖注入
spring整合quartz使用jdbc存储任务,并配置为quartz集群应用
Spring集成Quartz的代码示例,可轻松实现可配置JAVA定时任务。
关于spring中quartz的配置