Quartz提供了多種調(diào)度任務(wù)的方式。CronTrigger可能是最復(fù)雜的一種,不過(guò)還有其它的選擇。大多數(shù)觸發(fā)器可以由Quartz提供的TriggerUtils類(lèi)創(chuàng)建。以下是一些常見(jiàn)的觸發(fā)器的例子。如諺語(yǔ)所言,條條大路通羅馬!
每天凌晨2:22觸發(fā)的觸發(fā)器
// 方法一:使用makeDailyTrigger
Trigger trigger = TriggerUtils.makeDailyTrigger(2, 22);
trigger.setName("trigger1");
trigger.setGroup("group1");
// 方法二:使用CronTrigger
Trigger trigger = new CronTrigger("trigger1", "group1");
trigger.setCronExpression("0 22 2 * * ?");
每5秒執(zhí)行一次的觸發(fā)器
/* *
* 方法一:makeSecondlyTrigger
* 注意以下代碼將創(chuàng)建一個(gè)立即啟動(dòng)的觸發(fā)器。要控制啟動(dòng)時(shí)間,使用
* trigger.setStartTime(Date)方法。
*/
Trigger trigger = TriggerUtils.makeSecondlyTrigger(5);
trigger.setName("MyFiveSecondTrigger");
trigger.setGroup("MyTriggerGroup");
/*
*
* 方法二:設(shè)置SimpleTrigger的重復(fù)次數(shù)和間隔時(shí)間。
* 注意以下代碼將創(chuàng)建一個(gè)立即啟動(dòng)的觸發(fā)器。要控制啟動(dòng)時(shí)間,使用
* trigger.setStartTime(Date)方法。
*/
Trigger trigger = new SimpleTrigger("trigger1", "group1");
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger.setRepeatInterval(5000L); // milliseconds
按間隔時(shí)間運(yùn)行任務(wù)
Trigger trigger = new SimpleTrigger("trigger1", "group1");
// 24 hours * 60(minutes per hour) *
// 60(seconds per minute) * 1000(milliseconds per second)
// 24小時(shí) * 60(分鐘每小時(shí)) * 60(秒每分鐘)* 1000(毫秒每秒鐘)
trigger.setRepeatInterval(24L * 60L * 60L * 1000L);
結(jié)論
在這個(gè)演示中,我們只接觸了Quartz框架的一些初級(jí)功能。記住,Java 5 和J2EE 5也有自己的任務(wù)調(diào)度機(jī)制,但是它們不像Quartz那樣靈活易用。Quartz是目前唯一的開(kāi)源Java任務(wù)調(diào)度框架,它的確為開(kāi)發(fā)者的錦囊中增加了很有用的內(nèi)容。你可從Open Symphony下載Quartz,并得到一份很好的教程和使用說(shuō)明。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |