先簡(jiǎn)單介紹一下quartz,Quartz是一個(gè)功能豐富的開源作業(yè)調(diào)度庫(kù),可以集成到幾乎任何Java應(yīng)用程序中 - 從最小的獨(dú)立應(yīng)用程序到最大的電子商務(wù)系統(tǒng)。quartz可用于創(chuàng)建執(zhí)行數(shù)十,數(shù)百甚至數(shù)十萬個(gè)作業(yè)的簡(jiǎn)單或復(fù)雜的計(jì)劃; 任務(wù)定義為標(biāo)準(zhǔn)Java組件的任務(wù),可以執(zhí)行任何可以對(duì)其進(jìn)行編程的任何內(nèi)容。Quartz Scheduler包含許多企業(yè)級(jí)功能,例如支持JTA事務(wù)和集群。
以上內(nèi)容來自quartz官網(wǎng)。
1源碼分析
我們會(huì)針對(duì)quartz的幾個(gè)主要類進(jìn)行分析,看一下quartz是如何實(shí)現(xiàn)定時(shí)調(diào)度功能
1.1測(cè)試Demo
來自官方實(shí)例的example1
public class SimpleExample { public void run() throws Exception { Logger log = LoggerFactory.getLogger(SimpleExample.class); log.info("------- Initializing ----------------------"); // First we must get a reference to a scheduler SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); log.info("------- Initialization Complete -----------"); // computer a time that is on the next round minute Date runTime = evenMinuteDate(new Date()); log.info("------- Scheduling Job -------------------"); // define the job and&nbs