spring定时任务
<!-- 使用cron表达式进行计划任务cron="0 0 1 * * ?" 每天凌晨1点进行任务,使用fixed-rate进行定时任务 fixed-rate="6*1000" 60秒一次 -->
<!-- 计划任务配置,用 @Service @Lazy(false)标注类,用@Scheduled(cron = "0 0 2 * * ?")标注方法 -->
<task:executor id="executor" pool-size="10"/> <task:scheduler id="scheduler" pool-size="10"/>
<task:annotation-driven scheduler="scheduler" executor="executor" proxy-target-class="true"/>
<task:scheduled-tasks>
<task:scheduled ref="SmsService" method="replyMessage" fixed-rate="6*1000" cron="0 0 1 * * ?"/>
</task:scheduled-tasks>
cron表达式
一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下:
1.秒取值(0-59)
2.分钟取值(0-59)
3.小时取值(0-23)
4.月份中的是日期取值(1-31)
5.月份取值(1-12)
6.星期中的日期取值(1-7)
7.年份取值(1970-2099),可以为空,其他的许为空
还可以使用符号进行通配:
(*)也就是每的意思
(?)表示不确定的意思用于日期与星期,不允许用于其他位置,
(-)比如星期上取值 1-6 周日到周六执行
(,)数组值 如星期上取值1,4,5 周145 执行任务
(/)表示步长的意思 星期上取值(1/2)周一开始 周一 周三 周五 周日执行
比如上面使用的:
cron=”0 0 1 * * ?”
每天凌晨一点执行