spring配置檔案實現定時任務
阿新 • • 發佈:2018-12-30
文章目錄
開發環境
- JDK 8
- spring版本 4.3.8
參考文章
https://www.cnblogs.com/zjdxr-up/p/7778135.html
https://blog.csdn.net/qq_33556185/article/details/51852537
名稱空間的引入
<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個欄位, 否則會報錯. 但可以逗號進行同一個欄位的列舉