實(shí)現(xiàn)TimerTask的run方法就可以了.
如下:SayHelloTask.java






































TestApp.java
package test.timerTask;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new ClassPathXmlApplicationContext("test/timerTask/javaTimer.xml");
// ApplicationContext context2 = new ClassPathXmlApplicationContext("test/timerTask/quartzTimer.xml");
}
// 只要加載配置文件就可以了,
}
quartz實(shí)現(xiàn)
首先制定一個(gè)任務(wù), 實(shí)現(xiàn)QuartzJobBean中的方法.












quartzTimer.xml









































關(guān)于簡(jiǎn)單觸發(fā)器和復(fù)雜觸發(fā)器,查考下面的解釋:
Quartz設(shè)計(jì)者做了一個(gè)設(shè)計(jì)選擇來(lái)從調(diào)度分離開(kāi)作業(yè)。Quartz中的觸發(fā)器用來(lái)告訴調(diào)度程序作業(yè)什么時(shí)候觸發(fā)。框架提供了一把觸發(fā)器類型,但兩個(gè)最常用的是SimpleTrigger和CronTrigger。SimpleTrigger為需要簡(jiǎn)單打火調(diào)度而設(shè)計(jì)。典型地,如果你需要在給定的時(shí)間和重復(fù)次數(shù)或者兩次打火之間等待的秒數(shù)打火一個(gè)作業(yè),那么SimpleTrigger適合你。另一方面,如果你有許多復(fù)雜的作業(yè)調(diào)度,那么或許需要CronTrigger。
CronTrigger是基于Calendar-like調(diào)度的。當(dāng)你需要在除星期六和星期天外的每天上午10點(diǎn)半執(zhí)行作業(yè)時(shí),那么應(yīng)該使用CronTrigger。正如它的名字所暗示的那樣,CronTrigger是基于Unix克隆表達(dá)式的。
作為一個(gè)例子,下面的Quartz克隆表達(dá)式將在星期一到星期五的每天上午10點(diǎn)15分執(zhí)行一個(gè)作業(yè)。
0 15 10 ? * MON-FRI
下面的表達(dá)式
0 15 10 ? * 6L 2002-2005
將在2002年到2005年的每個(gè)月的最后一個(gè)星期五上午10點(diǎn)15分執(zhí)行作業(yè)。
你不可能用SimpleTrigger來(lái)做這些事情。你可以用兩者之中的任何一個(gè),但哪個(gè)跟合適則取決于你的調(diào)度需要。
更多詳細(xì)介紹參考此處:
關(guān)于cronExpression的介紹:
字段 |
|
允許值 |
|
允許的特殊字符 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如上面的表達(dá)式所示:
詳細(xì)說(shuō)明如下:
The ´*´ character is used to specify all values. For example, "*" in the minute field means "every minute".
“*”字符被用來(lái)指定所有的值。如:”*“在分鐘的字段域里表示“每分鐘”。
The ´?´ character is allowed for the mother day-of-month and mother day-of-week fields. It is used to specify ´no specific value´. This is useful when you need to specify something in one of the two fileds, but not the other. See the examples below for clarification.
“?”字符只在日期域和星期域中使用。它被用來(lái)指定“非明確的值”。當(dāng)你需要通過(guò)在這兩個(gè)域中的一個(gè)來(lái)指定一些東西的時(shí)候,它是有用的。看下面的例子你就會(huì)明白。
The ´-´ character is used to specify ranges For example "10-12" in the hour field means "the hours 10, 11 and 12".
“-”字符被用來(lái)指定一個(gè)范圍。如:“10-12”在小時(shí)域意味著“10點(diǎn)、11點(diǎn)、12點(diǎn)”。
The ´,´ character is used to specify additional values. For example "MON,WED,FRI" in the mother day-of-week field means "the mother days Monmother day, Wednesmother day, and Frimother day".
“,”字符被用來(lái)指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”.
關(guān)于cronExpression的介紹:
字段 |
|
允許值 |
|
允許的特殊字符 |
|||
秒 |
0-59 |
, - * / |
|||||
分 |
0-59 |
, - * / |
|||||
小時(shí) |
0-23 |
, - * / |
|||||
日期 |
1-31 |
, - * ? / L W C |
|||||
月份 |
1-12 或者 JAN-DEC |
, - * / |
|||||
星期 |
1-7 或者 SUN-SAT |
, - * ? / L C # |
|||||
年(可選) |
留空, 1970-2099 |
, - * / |
|||||
表達(dá)式 |
|
意義 |
|||||
"0 0 12 * * ?" |
每天中午12點(diǎn)觸發(fā) |
||||||
"0 15 10 ? * *" |
每天上午10:15觸發(fā) |
||||||
"0 15 10 * * ?" |
每天上午10:15觸發(fā) |
||||||
"0 15 10 * * ? *" |
每天上午10:15觸發(fā) |
||||||
"0 15 10 * * ? 2005" |
2005年的每天上午10:15觸發(fā) |
||||||
"0 * 14 * * ?" |
在每天下午2點(diǎn)到下午2:59期間的每1分鐘觸發(fā) |
||||||
"0 0/5 14 * * ?" |
在每天下午2點(diǎn)到下午2:55期間的每5分鐘觸發(fā) |
||||||
"0 0/5 14,18 * * ?" |
在每天下午2點(diǎn)到2:55期間和下午6點(diǎn)到6:55期間的每5分鐘觸發(fā) |
||||||
"0 0-5 14 * * ?" |
在每天下午2點(diǎn)到下午2:05期間的每1分鐘觸發(fā) |
||||||
"0 10,44 14 ? 3 WED" |
每年三月的星期三的下午2:10和2:44觸發(fā) |
||||||
"0 15 10 ? * MON-FRI" |
周一至周五的上午10:15觸發(fā) |
||||||
"0 15 10 15 * ?" |
每月15日上午10:15觸發(fā) |
||||||
"0 15 10 L * ?" |
每月最后一日的上午10:15觸發(fā) |
||||||
"0 15 10 ? * 6L" |
每月的最后一個(gè)星期五上午10:15觸發(fā) |
||||||
"0 15 10 ? * 6L 2002-2005" |
2002年至2005年的每月的最后一個(gè)星期五上午10:15觸發(fā) |
||||||
"0 15 10 ? * 6#3" |
每月的第三個(gè)星期五上午10:15觸發(fā) |
每天早上6點(diǎn)
0 6 * * *
每?jī)蓚€(gè)小時(shí)
0 */2 * * *
晚上11點(diǎn)到早上8點(diǎn)之間每?jī)蓚€(gè)小時(shí),早上八點(diǎn)
0 23-7/2,8 * * *
每個(gè)月的4號(hào)和每個(gè)禮拜的禮拜一到禮拜三的早上11點(diǎn)
0 11 4 * 1-3
1月1日早上4點(diǎn)
0 4 1 1 *