ssm配置定時任務


1、在springmvc-config.xml配置文件中加點東西

  在xmlns中加一句

xmlns:task="http://www.springframework.org/schema/task"

  在xsi中加如下代碼

http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd

  再加一個

<task:annotation-driven/>

2、配置文件加好之后,新建一個類,代碼如下

@Component
public class TimerTask {
    
    @Autowired
    private XXTZController xc;
    
    /**
     * 每個月一號凌晨一點執行test1
     */
    //                   秒分時日 月周
      @Scheduled(cron = "0 0 1 1 * ?")
      public void test1()
      {
          System.out.println("開始執行數據庫備份。。。。。。。。。。。。。。。。。。");
          xc.copy();
      } 
      @Scheduled(cron = "0/5 * * * * ?")//每隔5秒隔行一次 

public void test2(){ System.out.println("job2 開始執行");

} }

這個類加的位置不一樣會有不一樣的效果,把這個類放到Controller包下,當服務啟動時他會自動執行,放到其他地方則需要觸發才能執行。

3、上面涉及到了Cron表達式的問題,一個cron表達式有至少6個(也可能7個)有空格分隔的時間元素

按順序依次為
秒(0~59)鍾(0~59)時(0~23)天(1~31(但要注意一些特別的月份))月(1~12)周(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)年(19702099)年(可選)
其中每個元素可以是一個具體值(1),也可以是一個連續區間(1-5),也可以是一個間隔時間(1-4/2)(/表示每隔2),也可以是一個列表(1,3,5),或通配符。
由於"月份中的日期""星期中的日期"這兩個元素互斥的,必須要對其中一個設置?.


 “?”字符:表示不確定的值
“,”字符:指定數個值
“-”字符:指定一個值的范圍
“/”字符:指定一個值的增加幅度。n/m表示從n開始,每次增加m
“L”字符:用在日表示一個月中的最后一天,用在周表示該月最后一個星期X
“W”字符:指定離給定日期最近的工作日(周一到周五)
 “#”字符:表示該月第幾個周X。6#3表示該月第3個周五

字段 允許值 允許的特殊字符
0-59 , - * /0-59 , - * / 小時 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 星期 1-7 或者 SUN-SAT , - * ? / L C # 年(可選) 留空, 1970-2099 , - * /

4、cron表達式實例:

   每隔30秒執行一次:*/30 * * * * ?

  每隔30分鍾執行一次:0 */30 * * * ?

       每天23點執行一次:0 0 23 * * ?

       每月1號凌晨1點執行一次:0 0 1 1 * ?

  每月最后一天1點執行一次:0 0 1 L * ?

  每周星期天凌晨1點實行一次:0 0 1 ? * L

       每小時在26分、29分、33分執行一次:0 26,29,33 * * * ?

       每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?


免責聲明!

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



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