1. 程式人生 > >spring配置檔案實現定時任務

spring配置檔案實現定時任務

文章目錄


開發環境

名稱空間的引入

<beans default-autowire="byName"
	   xmlns
="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"
>
</beans>

注入一個bean

 <bean id="fastDFSService" name="fastDFSService"
          class="fastdfs.service.FastDFSServiceImpl" scope="prototype">
</bean>

task標籤定義定時的任務

其中ref為指定哪個類, method為指定哪個方法進行定時任務. cron為確定在何時觸發該方法.
cron="* * * * * ?" 表示每秒鐘觸發該方法


<task:scheduled-tasks
>
<task:scheduled ref="fastDFSService" method="deleteFastFile" cron="* * * * * ?" /> </task:scheduled-tasks>

cron表示式的含義 如下圖

常用的cron表示式

* second(秒), minute(分), hour(時), day of month(日), month(月), day of week(周幾).
     * 0 * * * * MON-FRI
     *  【0 0/5 14,18 * * ?】 每天14點整,和18點整,每隔5分鐘執行一次
     *  【0 15 10 ? * 1-6】 每個月的週一至週六10:15分執行一次
     *  【0 0 2 ? * 6L】每個月的最後一個週六凌晨2點執行一次
     *  【0 0 2 LW * ?】每個月的最後一個工作日凌晨2點執行一次
     *  【0 0 2-4 ? * 1#1】每個月的第一個週一凌晨2點到4點期間,每個整點都執行一次;
     * "0/4 * * * * MON-SAT")  //每4秒執行一次

在spring的cron表示式中, 只允許有6個欄位, 否則會報錯. 但可以逗號進行同一個欄位的列舉