一、注解說明。
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>
添加后,如下圖所示: