天天看點

SpringTask定時器1 概念2 xml配置方式3 注解方式4 cron表達式

1 概念

SpringTask是spring3.0後自主提供的定時任務的工具, spring-task,可以将它比作一個輕量級的Quartz,而且使用起來很簡單,除spring相關的包外不需要額外的包,而且支援注解和配置檔案兩種形式。這裡主要介紹SpringTask的使用方式

2 xml配置方式

1.添加task命名空間

2.Spring建立任務所在的類型的對象,配置定時任務(在spring主配置檔案中)

<!--Spring 定時任務 xml寫法-->
    <bean id="writeIndex" class="com.project.writerindex.WriteIndex"></bean>
    <!--配置定時任務-->
    <task:scheduled-tasks>
        <!--
            ref:執行的類
            method:執行的方法
            cron:
        -->
        <task:scheduled ref="writeIndex" method="writeRun" cron=" */3 * * * * ? "/>
    </task:scheduled-tasks>
           
SpringTask定時器1 概念2 xml配置方式3 注解方式4 cron表達式

3.在測試方式中擷取容器,啟動容器

SpringTask定時器1 概念2 xml配置方式3 注解方式4 cron表達式

3 注解方式

1.添加task的注解驅動(在spring主配置檔案中)

<!--task的注解驅動-->
    <task:annotation-driven/>
           

2.添加IoC注解,并且在任務類上标注@Component注解

<!--IoC注解-->
    <context:component-scan base-package="com.project.writerindex"/>
           

3.執行的方法上标注@scheduled注解

SpringTask定時器1 概念2 xml配置方式3 注解方式4 cron表達式

•任務類必須在spring的容器中, 否則@Scheduled不起效

4 cron表達式

一個cron表達式有至少6個用空格分隔的時間元素。

1. 按順序依次為

1. 秒(0~59)

2. 分鐘(0~59)

3. 小時(0~23)

4. 天(0~31)

5. 月(0~11)

6. 星期(1~7 1為SUN-依次為SUN,MON,TUE,WED,THU,FRI,SAT)

7. 年份(1970-2099)

2. 舉例說明:

0 0 10,14,16 * * ? 每天上午10點,下午2點,4點

0 0/30 9-17 * * ? 朝九晚五工作時間内每半小時

0 0 12 ? * WED 表示每個星期三中午12點

*/1 * * * * ? 每隔一秒執行一次