定時任務很簡單,就是設置某個時間點,或者是每隔一段時間執行的任務。html
我是經過spring註解來配置的,下面記錄下配置過程:java
首先要作的是添加命名空間及描述:
spring
xmlns:task="http://www.springframework.org/schema/task" <!-- 這個放在xmlns後面 -->
<!-- 下面這兩個加到 xsi:schemaLocation 裏 --> http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
而後啓用註解:編程
<!-- 啓用註解 --> <context:annotation-config/> <context:component-scan base-package="com"/> <!-- 自動掃描com開頭的包的註解--> <aop:aspectj-autoproxy/> <!-- 切面編程,自動搜找--> <task:annotation-driven/> <!-- 開啓定時器註解 -->
其餘application.xml就和之前的同樣,這樣配置以後就能使用註解來聲明一個定時器任務了。
app
而後建立定時器類:框架
新建一個包:com.erongdu.shopping.timer函數
在底下建立一個類:CountOrdersJob.javaspa
package com.erongdu.shopping.timer; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class CountOrdersJob { @Scheduled(cron="*/50 * * * * ?" ) public void doCountOrders(){ System.out.println("這裏是具體執行的函數體"); } }
這是簡單的框架,我本身的定時任務太亂就不貼出來了,我提下注意點,code
1.類體上要打上@Component標註,聲明是spring的組件component
2.在具體的定時任務方法上打上@Scheduled
3.@Scheduled的屬性(本身能夠在標註後面按 alt+/ 彈出提示):
cron:指定cron表達式
fixedDelay:官方文檔解釋:An interval-based trigger where the interval is measured from the completion time of the previous task. The time unit value is measured in milliseconds.即表示從上一個任務完成開始到下一個任務開始的間隔,單位是毫秒。
fixedRate:官方文檔解釋:An interval-based trigger where the interval is measured from the start time of the previous task. The time unit value is measured in milliseconds.即從上一個任務開始到下一個任務開始的間隔,單位是毫秒
4.cron表達式:http://jason.hahuachou.com/
http://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html