Spring Schedule 任務調度實現


我們都知道任務調度可以用Quartz,但對於簡單的定時任務,可以直接用Spring內置的Schedule來實現。可以由兩種方式,注釋+XML配置

注解方式:

注解也要先在sping.xml配置文件中配置自動發現

XML中引入命名空間:

xmlns:task="http://www.springframework.org/schema/task" 
 http://www.springframework.org/schema/task 
       http://www.springframework.org/schema/task/spring-task-3.0.xsd 
       "

設置自動發現:

 <!-- 啟動定時器 --> 
    <task:annotation-driven/>      

之后在方法中加了@Scheduled注解,就能讓該方法定時執行

 @Scheduled(cron="0 33/3 * * * ?") //每小時的33分鍾開始執行,每3分鍾執行1次 
    public void start() throws ServletException { 
                 validate(); 
}

其實@Scheduled中可以指定如下3中時間表達式:

(1)fixedRate:每隔多少毫秒執行一次該方法。如:

  @Scheduled(fixedRate=2000)  // 每隔2秒執行一次 
          public void scheduleMethod(){   
                    System.out.println("Hello world...");   
          }   

(2)fixedDelay:當一次方法執行完畢之后,延遲多少毫秒再執行該方法。

(3)cron:詳細配置了該方法在什么時候執行。cron值是一個cron表達式。如:

@Scheduled(cron="0 0 0 * * SAT")   
                public voidarchiveOldSpittles() {   
                 // ...   
                }

XML配置方式

 <task:scheduled-tasks>   
        <task:scheduled ref="taskJob" method="job1" cron="0 * * * * ?"/>   
</task:scheduled-tasks>  

其中taskJob是對應的javaBean,job1是要定時執行的方法


              


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM