Spring中@scheduled可以非常便捷的实现定时执行一个代码块。
构建过程为:1.在配置文件 spring-context.xml中加入task的命名空间。如下图:
2.在配置文件中定义spring 扫描过程中必须涵盖的定时任务的所在目录,一般是父级或更高级。如下图:
3.启用注解驱动的定时任务
4.配置 定时任务的线程数,不配置会报错。
5.在代码中使用@scheduled(cron="")来确定定时任务要执行的代码块。
cron的参数一般为6位或7 位,用空格隔开,大小写不敏感
按顺序分别是 秒 0~59
分 0~59
时 0~23
天(月)0~31
月 0~11
天(星期)1~7 sun/mon/tue/wed/thu/fri/sat
年份:1970~2099
每个元素都可以是一个值,一个连续的区间(2-12),一个时间间隔(12-23/2)一个列表(1,3,5,7)通配符(?/ * L , - W C)
通配符的含义“:
/ 表示指定的数值增量 0/4 从0开始每4
? 仅被用在天(月)和天(星期)表示不指定值【两个天是互斥的,一次只能有一个有值,另一个用?】
L 仅适用于两个天,表示最后的 如果前面有具体的内容 则表示其他意思 6L 倒数第6天
* 表示任意值
,表示枚举
- 范围
W 有效工作日(周一至周五) 如果用在天(月)上就是就近原则,
LW 最后工作日
# 每月的第几个星期几 4#2 第二个星期三
C 用于两个天 表示关联 5C 5后第一天