ssm配置定時任務

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

  在xmlns中加一句數據庫

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

  在xsi中加以下代碼mvc

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

  再加一個spa

<task:annotation-driven/>

二、配置文件加好以後,新建一個類,代碼以下code

@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包下,當服務啓動時他會自動執行,放到其餘地方則須要觸發才能執行。xml

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

按順序依次爲
秒(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 , - * /

四、cron表達式實例:io

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

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

       天天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 * * ?

相關文章
相關標籤/搜索