Quartz定時任務

Quartz是純Java開發的工做任務調度框架,能夠與各類Java框架配合使用,也能夠獨立運行。通常在項目中實現定時任務。html

根據官方的描述Quartz能夠支持,一個、多個乃至萬個定時任務,我的不太敢這麼嘗試,若是那麼多定時任務的話,性能實在怕拖累了。不過也能夠看出Quartz對本身的性能是頗有自信的。java

本文講解在Spring環境下以註解的方式如何實現Quartz,用後發現這個簡單的實在不像話,哪像一個擁有如此強大功能的框架的配置過程啊,簡直是傻瓜型的。spring

 

1473058358717068189.png 在spring.xml文件中增長一行配置app

<task:annotation-driven></task:annotation-driven>

注意,這個配置用到了task標籤,所以須要在beans標籤上增長以下配置:框架

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

 

在xsi:schemaLocation中增長:測試

http://www.springframework.org/schema/task spa

http://www.springframework.org/schema/task/spring-task.xsdcode

就這麼簡單,Quartz的配置就完成了xml

 

 寫一個Quartz的測試類和方法

代碼以下:

package com.wskj.app.quartz;
 
import java.util.Date;
 
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
@Component
public class TestQuartz {
     
    @Scheduled(cron = "*/4 * *  * * ? ")
    public void printab(){
        System.out.println("Hello,"+new Date());
    }
 
}

解釋說明

@Component註解:通知Spring,該類將願意被Spring做爲一個組件管理。

@Scheduled註解:聲明這是一個定時執行的任務。

cron屬性:定義了CronTrigger,什麼時間觸發執行。

 

 CronTrigger解釋

 

CronTrigger配置完整格式爲: [秒] [分] [小時] [日] [月] [周] [年]

序號    說明     是否必填     容許填寫的值    容許的通配符    

 1     秒     是          0-59          , - * /    

 2     分     是          0-59          , - * /    

 3    小時     是          0-23          , - * /    

 4     日     是          1-31          , - * ? / L W    

 5     月     是          1-12 or JAN-DEC   , - * /    

 6     周     是          1-7 or SUN-SAT    , - * ? / L #    

 7     年     否          empty 或 1970-2099  , - * /    

 

舉例以下:

0 0 12 * * ?         天天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點59分(整點開始,每隔5分觸發)    

0 0/5 14,18 * * ?     天天下午的 2點到2點59分、18點到18點59分(整點開始,每隔5分觸發)    

0 0-5 14 * * ?       天天下午的 2點到2點05分每分觸發    

0 10,44 14 ? 3 WED    3月分每週三下午的 2點10分和2點44分觸發    

0 15 10 ? * MON-FRI    從週一到週五天天上午的10點15分觸發    

0 15 10 15 * ?       每個月15號上午10點15分觸發    

0 15 10 L * ?        每個月最後一天的10點15分觸發    

0 15 10 ? * 6L       每個月最後一週的星期五的10點15分觸發    

0 15 10 ? * 6L 2002-2005 從2002年到2005年每個月最後一週的星期五的10點15分觸發    

0 15 10 ? * 6#3       每個月的第三週的星期五開始觸發    

0 0 12 1/5 * ?       每個月的第一個中午開始每隔5天觸發一次    

0 11 11 11 11 ?      每一年的11月11號 11點11分觸發(光棍節)    

本文摘自:http://www.jiisb.com/www/article/art_124.html

相關文章
相關標籤/搜索