关于重新建设网站的申请,互联网舆情报告,seo及网络推广,南京电商网站建设Quartz 是一个开源的作业调度框架#xff0c;它完全由 Java 写成#xff0c;并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来集成 Quartz 。 Quartz 下载地址 #x…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: Xml代码 !-- Timer schedule -- !--要调度的对象-- bean idjobBean classnet.xsbiz.common.MakeHtml / bean idjobDetail classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean property nametargetObject refjobBean / property nametargetMethod valueexecute / !--将并发设置为false-- property nameconcurrent valuefalse / /bean bean idtrigger classorg.springframework.scheduling.quartz.CronTriggerBean property namejobDetail refjobDetail / !--表达式我的是每 30 执行一次-- property namecronExpression value0/30 * * * * ? / /bean !-- 总管理类如果将lazy-initfalse那么容器启动就会执行调度程序 -- bean idstartQuertz classorg.springframework.scheduling.quartz.SchedulerFactoryBean lazy-initfalse property nametriggers list !--作业调度器,list下可加入其他的调度器-- ref beantrigger / /list /property /bean web.xml Xml代码 !-- 设置Spring的监听项目启动时候初始化 -- listener listener-classorg.springframework.web.context.ContextLoaderListener/listener-class /listener !-- 指定Spring配置文件的路径 -- context-param param-namecontextConfigLocation/param-name param-value/WEB-INF/classes/applicationContext.xml/param-value /context-param MakeHtml.java : 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 ? * * 每天早上1015触发 0 15 10 * * ? 每天早上1015触发 0 15 10 * * ? * 每天早上1015触发 0 15 10 * * ? 2005 2005年的每天早上1015触发 0 * 14 * * ? 每天从下午2点开始到2点59分每分钟一次触发0 0/5 14 * * ? 每天从下午2点开始到255分结束每5分钟一次触发0 0/5 14,18 * * ? 每天的下午2点至255和6点至6点55分两个时间段内每5分钟一次触发0 0-5 14 * * ? 每天14:00至14:05每分钟一次触发0 10,44 14 ? 3 WED 三月的每周三的1410和1444触发0 15 10 ? * MON-FRI 每个周一、周二、周三、周四、周五的1015触发0 15 10 15 * ? 每月15号的1015触发0 15 10 L * ? 每月的最后一天的1015触发0 15 10 ? * 6L 每月最后一个周五的1015触发0 15 10 ? * 6L 每月最后一个周五的1015触发0 15 10 ? * 6L 2002-2005 2002年至2005年的每月最后一个周五的1015触发0 15 10 ? * 6#3 每月的第三个周五的1015触发 以上例子都是我的现实项目改过来的。。。经过测试的。。O(∩_∩)O哈哈哈~ 哎。。肚子饿死了。。。。吃东西去。。。中午还没吃东西的。。。。嘿嘿~~~~~~~~ 30 * * * * ? 每半分钟触发任务 30 10 * * * ? 每小时的10分30秒触发任务 30 10 1 * * ? 每天1点10分30秒触发任务 30 10 1 20 * ? 每月20号1点10分30秒触发任务 30 10 1 20 10 ? * 每年10月20号1点10分30秒触发任务 30 10 1 20 10 ? 2011 2011年10月20号1点10分30秒触发任务 30 10 1 ? 10 * 2011 2011年10月每天1点10分30秒触发任务 30 10 1 ? 10 SUN 2011 2011年10月每周日1点10分30秒触发任务 15,30,45 * * * * ? 每15秒30秒45秒时触发任务 15-45 * * * * ? 15到45秒内每秒都触发任务 15/5 * * * * ? 每分钟的每15秒开始触发每隔5秒触发一次 15-30/5 * * * * ? 每分钟的15秒到30秒之间开始触发每隔5秒触发一次 0 0/3 * * * ? 每小时的第0分0秒开始每三分钟触发一次 0 15 10 ? * MON-FRI 星期一到星期五的10点15分0秒触发任务 0 15 10 L * ? 每个月最后一天的10点15分0秒触发任务 0 15 10 LW * ? 每个月最后一个工作日的10点15分0秒触发任务 0 15 10 ? * 5L 每个月最后一个星期四的10点15分0秒触发任务 0 15 10 ? * 5#3 每个月第三周的星期四的10点15分0秒触发任务 转载于:https://www.cnblogs.com/qxpgwww/p/4107928.html