1、使用spring的 scheduled使用注解的方式
這種方法的好處是:使用友善,配置少,提高開發效率;
缺點是:如果使用伺服器叢集部署方式的時候,其自身無法解決定時任務重複執行的問題。
2、首先在你的applicationContext.xml中加入以下配置:
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="10" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
3、在你的實作方法前加上注解@Scheduled(cron = "0 10 * * * ?")就可以了
注意:
a、spring的@Scheduled注解 需要寫在實作上、
b、 定時器的任務方法不能有傳回值(如果有傳回值,spring初始化的時候會告訴你有個錯誤、需要設定一個proxytargetclass的某個值為true、具體就去百度google吧)
c、實作類上要有元件的注解@Component
4、剩下的就是corn表達式了、具體使用以及參數請百度google、
下面隻例出幾個式子
CRON表達式 含義
"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觸發