



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。一、增加所依赖的JAR包1、增加Spring的Maven依赖 org.springframework spring-webmvc 3.0.5.RELEASE2、增加Quartz的Maven依赖 org.quartz-scheduler quartz 1.8.4二、增加定时业务逻辑类public class ExpireJobTask /* Logger */ private static final Logger logger = LoggerFactory.getLogger(ExpireJobTask.class); /* * 业务逻辑处理 */ public void doBiz() / 执行业务逻辑 / . ExpireJobTask业务逻辑类与一般普通的类没有任务区别,它定义的doBiz方法即为调度业务方法。三、增加Spring配置1、增加一个线程池 2、定义业务逻辑处理类3、增加调度业务逻辑 上面的配置中,我们以bizObject.doBiz方法为将要调度的业务执行逻辑。4、增加调度触发器 Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。 该调度表示,延迟10秒启动,然后每隔1分钟执行一次。5、增加调度 triggers属性中,我们可以增加多个触发器。到此,Spring已经与Quartz完美的结合了,我们接下来的工作就是启动系统,开始调度了。四、Cron表达式的详细用法字段 允许值 允许的特殊字符秒 0-59 , - * /分 0-59 , - * /小时 0-23 , - * /日期 1-31 , - * ? / L W C月份 1-12 或者 JAN-DEC , - * /星期 1-7 或者 SUN-SAT , - * ? / L C #年(可选) 留空, 1970-2099 , - * /例子:0/5 * * * * ? : 每5秒执行一次“*”字符被用来指定所有的值。如:*在分钟的字段域里表示“每分钟”。“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。月份中的日期和星期中的日期这两个元素时互斥的一起应该通过设置一个问号来表明不想设置那个字段。“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”。“/”字符用于指定增量。如:“0/15”在秒域意思是每分钟的0,15,30和45秒。“5/15”在分钟域表示每小时的5,20,35和50。符号“*”在“/”前面(如:*/10)等价于0在“/”前面(如:0/10)。记住一条本质:表达式的每个数值域都是一个有最大值和最小值的集合,如:秒域和分钟域的集合是0-59,日期域是1-31,月份域是1-12。字符“/”可以帮助你在每个字符域中取相应的数值。如:“7/6”在月份域的时候只有当7月的时候才会触发,并不是表示每个6月。L是last的省略写法可以表示day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of-month域中表示一个月的最后一天。如果在day-of-week域表示7或者SAT,如果在day-of-week域中前面加上数字,它表示一个月的最后几天,例如6L就表示一个月的最后一个星期五。字符“W”只允许日期域出现。这个字符用于指定日期的最近工作日。例如:如果你在日期域中写 “15W”,表示:这个月15号最近的工作日。所以,如果15号是周六,则任务会在14号触发。如果15好是周日,则任务会在周一也就是16号触发。如果是在日期域填写“1W”即使1号是周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定的最近工作日是不能够跨月份的。字符“W”只能配合一个单独的数值使用,不能够是一个数字段,如:1-15W是错误的。“L”和“W”可以在日期域中联合使用,LW表示这个月最后一周的工作日。字符“#”只允许在星期域中出现。这个字符用于指定本月的某某天。例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。字符“C”允许在日期域和星期域出现。这个字符依靠一个指定的“日历”。也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)。五、表达式举例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 * ? 每月最后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医药物流行业当前竞争格局与未来发展趋势分析报告
- 2025年海洋装备制造行业当前发展趋势与投资机遇洞察报告
- 收付业务知识培训课件
- 支付清算知识培训
- 2025年二级建造师考试施工管理真题及答案
- 2025年全国畜牧兽医职业技能资格知识考试题库与答案
- 2025年云南省高校大学《辅导员》招聘考试题库及答案
- 2025年全国中学生生物学联赛试题及答案
- 2025年社会工作者之初级社会工作实务能力测试试卷A卷附答案
- 摩托摔车安全知识培训课件
- 浪潮入职测评题和答案
- 防汛应急桌面演练方案
- 存货盘点实施方案
- 透析中的监测及护理常规
- 《肿瘤免疫治疗》课件
- 股东代持合同模板
- 【中国人大】+2024年微博热点趋势报告
- 职业技能培训班主任职责与实习指导
- 2025年山东省东营市经济技术开发区辅警岗位招聘30人历年高频重点提升(共500题)附带答案详解
- 2025-2030全球水飞蓟素原料药行业调研及趋势分析报告
- 2025年军队文职考试《公共科目》试题与参考答案
评论
0/150
提交评论