Quartz 开源的作业调度框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来集成 Quartz 。
Quartz 下载地址 :
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.quartz-scheduler/quartz/1.7.3
首先下载包 :quartz-1.7.3.jar (我上传到附件咯,嘿嘿)
把包放到 lib 里面。
applicationContext.xml:
- <!-- Timer schedule -->
 - <!--要调度的对象-->
 - <bean id="jobBean" class="net.xsbiz.common.MakeHtml" />
 - <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 - <property name="targetObject" ref="jobBean" />
 - <property name="targetMethod" value="execute" />
 - <!--将并发设置为false-->
 - <property name="concurrent" value="false" />
 - </bean>
 - <bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
 - <property name="jobDetail" ref="jobDetail" />
 - <!--表达式,我的是每 30 执行一次-->
 - <property name="cronExpression" value="0/30 * * * * ?" />
 - </bean>
 - <!-- 总管理类如果将lazy-init='false'那么容器启动就会执行调度程序 -->
 - <bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" >
 - <property name="triggers">
 - <list>
 - <!--作业调度器,list下可加入其他的调度器-->
 - <ref bean="trigger" />
 - </list>
 - </property>
 - </bean>
 
web.xml:
- <!-- 设置Spring的监听,项目启动时候初始化 -->
 - <listener>
 - <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 - </listener>
 - <!-- 指定Spring配置文件的路径 -->
 - <context-param>
 - <param-name>contextConfigLocation</param-name>
 - <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
 - </context-param>
 
MakeHtml.java :
- //调用的类
 - public class MakeHtml {
 - //调用的方法
 - public void execute(){
 - //需要做的事情
 - }
 - public static void main(String[] args) {
 - System.out.println("----begin---");
 - ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
 - // 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
 - context.getBean("startQuertz");
 - System.out.print("----end---");
 - }
 - }
 
1 、JobDetail : JobDetail 是一个具体的类。
2、Trigger :触发器,它用于定义 Job 何时执行。最常用的是 SimpleTrigger 和 CronTrigger 。一般来说,如果你需要在一个固定的时间和重复次数或者一个固定的间隔时间,那么 SimpleTrigger 比较合适;如果你有许多复杂的作业调度,那么 CronTrigger 比较合适。 CronTrigger 和 Unix 的 cron 机制基本一样,我们需要的只是一个 cron 表达式。比如“ 0 0 12 * * ? ”会在每天中午 12 点触发 执行;“0 15 10 ? * 6L ”会在每个月的最后一个星期五的早上 10:15 触发 Job 执行。
3、 Scheduler 和 SchedulerFactory : Scheduler 负责管理 Trigger 、调度 Job , SchedulerFactory 则是 Scheduler 工厂,负责生成Scheduler 。
字段名 允许的值 允许的特殊字符
秒  | 
0-59  | 
, - * /  | 
||
分  | 
0-59  | 
, - * /  | 
||
小时  | 
0-23  | 
, - * /  | 
||
日  | 
1-31  | 
, - * ? / L W C  | 
||
月  | 
1-12 or JAN-DEC  | 
, - * /  | 
||
周几  | 
1-7 or SUN-SAT  | 
, - * ? / L C #  | 
||
年 (可选字段)  | 
empty, 1970-2099  | 
, - * /  | 
'*' 字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。
'?' 字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。
'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点".
',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday".
'/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。而 "5/15"则表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到59,对于“小时”字段来说其为0到23, 对于“日”字段来说为0到31, 而对于“月”字段来说为1到12。"/"字段仅仅只是帮助你在允许的数值范围内从开始"第n"的值。 因此对于“月”字段来说"7/6"只是表示7月被开启而不是“每六个月”, 请注意其中微妙的差别。
'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写, 但是在这两个字段中有不同的含义。例如,“日”字段中的"L"表示"一个月中的最后一天" —— 对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。
'W' 可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。比如你将“日”字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号也就是周一触发。如果15号为周二,那么当天就会触发。然而如果你将“日”字段设为"1W", 而一号又是周六, 触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。
'#' 字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" = 表示该月第一个周一而 "4#5" = 该月第五个周三。注意如果你指定"#5"该月没有第五个“周×”,该月是不会触发的。
'C' 字符可用于“日”和“周几”字段,它是"calendar"的缩写。它表示为基于相关的日历所计算出的值(如果有的话)。如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。
对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。
下面是一些完整的例子:
表达式 含义
"0 0 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分每分钟一次触发 | |
"0 0/5 14 * * ?"  | 
每天从下午2点开始到2:55分结束每5分钟一次触发 | |
"0 0/5 14,18 * * ?"  | 
每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 | |
"0 0-5 14 * * ?"  | 
每天14:00至14:05每分钟一次触发 | |
"0 10,44 14 ? 3 WED"  | 
三月的每周三的14:10和14: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"  | 
每月最后一个周五的10:15触发 | |
"0 15 10 ? * 6L 2002-2005"  | 
2002年至2005年的每月最后一个周五的10:15触发 | |
"0 15 10 ? * 6#3"  | 
每月的第三个周五的10:15触发 | 
"30 * * * * ?" 每半分钟触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务
- quartz-1.7.3.jar (409.9 KB)
 - 下载次数: 409
 
Quartz 开源的作业调度框架的更多相关文章
- Quartz.NET一个开源的作业调度框架
		
Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...
 - .Net平台开源作业调度框架Quartz.Net
		
Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...
 - (转).Net平台开源作业调度框架Quartz.Net
		
Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...
 - .NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
		
一.课程介绍 明人不说暗话,跟着阿笨一起玩NET .本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享 ...
 - Quartz.net 开源job调度框架(一)
		
Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...
 - Quartz作业调度框架及时间表达式的含义和语法
		
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...
 - Quartz.NET作业调度框架详解(转)
		
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...
 - Quartz作业调度框架
		
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...
 - Quartz.NET 2.0 作业调度框架使用
		
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...
 
随机推荐
- debian下编译libev库
			
系统为Linux debian 2.6.32-5-686.这是裸系统,连xwindows都没有.帐户为root,不是的注意一下权限.这里想说明安装过程及出现的问题,故打印的信息较多,以供出现错误的读者 ...
 - jQuery   动画之    添加商品到购物车
			
前台页面 <link href="MyCar.css" rel="stylesheet" /> <script src="../jq ...
 - Cookie知识点小结
			
问题是什么?有哪些技术?如何解决? 1. Cookie 1)完成回话跟踪的一种机制:采用的是在客户端保存Http状态信息的方案 2)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在 ...
 - drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉
			
我的机器老是这样.启动起来就有这个... 那位高手能告诉我这是怎么会事.故障的原因以及解决的办法. 最佳答案 drwtsn32.exe是windows的一项磁盘检查程序,同一时候也是鸡肋程序,最好的办 ...
 - C++中malloc/free和new/delete 的使用
			
malloc/free 的使用要点 函数malloc的原型如下: void * malloc(size_t size); 用malloc申请一块长度为length的整数类型的内存,程序如下: int ...
 - Android应用程序发送广播(sendBroadcast)的过程分析
			
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6744448 前面我们分析了Android应用程 ...
 - SQL内连接-外连接join,left join,right join,full join
			
1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...
 - css-网页整体css布局
			
<!DOCTYPE html><!--有限宽度带居中布局:<style>*{margin:0;padding:0;list-style:none;} .zong{back ...
 - Ninject框架的介绍
			
Ninject是C#语言的一款依赖性的注入器框架,我认为之所以会出现这个框架是因为类与类由于继承或者接口与类继承而出现的,首先这 个最典型存在是因为接口,首先我们来看看这个用了框架和没有用框架的区别吧 ...
 - SQL Server 2008 geometry 数据类型
			
摘自SQL Server 2008帮助 平面空间数据类型 geometry 是作为 SQL Server 中的公共语言进行时 (CLR) 数据类型实现的.此类型表示欧几里得(平面)坐标系中的数据. 注 ...