一、注解说明。
Spring 自带的定时任务执行@Scheduled注解,可以定时的、周期性的执行一些任务。查看@Scheduled的注解可以看到有以下三种:
1.1 String cron() default “” ;
//定义一个按时间执行的定时任务,在每天1:00执行一次。 @Scheduled(cron = "0 0 1* * ?") public void run() { //执行代码 }
example
"0 0 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分每分钟一次触发 "0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发 "0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 "0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发 "0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发 "0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
实例:
Task类:
Java对应代码:
package com.axb.cheney.task; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 心跳更新。启动时执行一次,之后每隔2秒执行一次 * @Scheduled(fixedRate = 1000*2) */ @Component public class ManageSql { @Scheduled(cron="0/30 * * * * ? ") //间隔5秒执行 public void test(){ System.out.println("定时任务开始啦,哈哈哈"); System.out.println("<<<---------结束执行HR数据同步任务--------->>>"); } }
配置:
中添加以下对应内容 :
1、xmlns 加下面的内容:
xmlns:task="http://www.springframework.org/schema/task"
2、然后xsi:schemaLocation加下面的内容:
http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-4.1.xsd
3、最后是我们的task任务扫描注解
<task:annotation-driven/>
4、配置的扫描位置是
<context:component-scan base-package="com.XXX.task"></context:component-scan>
添加后,如下图所示: