1. 程式人生 > >Quartz定時任務

Quartz定時任務

int logs tab public tar 定義 pfile uart 任務調度

Quartz是純Java開發的工作任務調度框架,可以與各種Java框架配合使用,也可以獨立運行。一般在項目中實現定時任務。

根據官方的描述Quartz可以支持,一個、多個乃至萬個定時任務,個人不太敢這麽嘗試,如果那麽多定時任務的話,性能實在怕拖累了。不過也可以看出Quartz對自己的性能是很有自信的。

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

技術分享 在spring.xml文件中增加一行配置

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

註意,這個配置用到了task標簽,因此需要在beans標簽上增加如下配置:

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

在xsi:schemaLocation中增加:

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

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

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

技術分享 寫一個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

Quartz定時任務