SpringMVC 配置定时执行任务

1. 在SpringMVC配置文件中添加配置描述

xmlns:task="http://www.springframework.org/schema/task" 
http://www.springframework.org/schema/task  
http://www.springframework.org/schema/task/spring-task-3.2.xsd 

2 配置任务扫描

<task:annotation-driven />

3 配置扫描任务位置

<!-- 自动扫描的包名 -->    
<context:component-scan base-package="cc.messcat.web.travel" />  

4 配置定时任务bean

<bean id="markLbsTraceScheduler" class="cc.messcat.web.travel.biz.MarkLbsTraceScheduler"></bean>  
  <task:scheduled-tasks>  
    <!--  这里表示的是每隔30秒执行一次  -->  
    <task:scheduled ref="markLbsTraceScheduler" method="markLbsTrace" cron="*/30 * * * * ?" />  
</task:scheduled-tasks>

5 扩展:定时时间的设置

如:“0/30 * * * * ?”
CronTrigger配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]html

序号 说明 是否必填 容许填写的值 容许的通配符
1 0-59 , - * /
2 0-59 , - * /
3 小时 0-23 , - * /
4 1-31 , - * ? / L W
5 1-12或JAN-DEC , - * /
6 1-7或SUN-SAT , - * ? / L W
7 empty 或1970-2099 , - * /

通配符说明:web

* 表示全部值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。spring


? 表示不指定值。使用的场景为不须要关心当前设置这个字段的值。spa

例如:要在每个月的10号触发一个操做,但不关心是周几,因此须要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ?component


- 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。xml


, 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发htm


/ 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每个月1号开始,每隔三天触发一次。blog


L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,若是是二月还会依据是不是润年[leap]), 在周字段上表示星期六,至关于"7"或"SAT"。若是在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五"ci


W 表示离指定日期的最近那个工做日(周一至周五). 例如在日字段上设置"15W",表示离每个月15号最近的那个工做日触发。若是15号正好是周六,则找最近的周五(14号)触发, 若是15号是周未,则找最近的下周一(16号)触发.若是15号正好在工做日(周一至周五),则就在该天触发。若是指定格式为 "1W",它则表示每个月1号日后最近的工做日触发。若是1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体的数字,不容许区间"-").io


# 序号(表示每个月的第几个周几),例如在周字段上设置"6#3"表示在每个月的第三个周六.注意若是指定"#5",正好第五周没有周六,则不会触发该配置(用在母亲节和父亲节再合适不过了) ;

小提示:
'L'和 'W'能够组合使用。若是在日字段上设置"LW",则表示在本月的最后一个工做日触发;
周字段的设置,若使用英文字母是不区分大小写的,即MON 与mon相同;

参考:

http://www.cnblogs.com/liaojie970/p/5913272.html

相关文章
相关标签/搜索