先簡單介紹一下quartz,Quartz是一個功能豐富的開源作業(yè)調(diào)度庫,可以集成到幾乎任何Java應(yīng)用程序中 - 從最小的獨立應(yīng)用程序到最大的電子商務(wù)系統(tǒng)。quartz可用于創(chuàng)建執(zhí)行數(shù)十,數(shù)百甚至數(shù)十萬個作業(yè)的簡單或復(fù)雜的計劃; 任務(wù)定義為標(biāo)準(zhǔn)Java組件的任務(wù),可以執(zhí)行任何可以對其進(jìn)行編程的任何內(nèi)容。Quartz Scheduler包含許多企業(yè)級功能,例如支持JTA事務(wù)和集群。
以上內(nèi)容來自quartz官網(wǎng)。
1源碼分析
我們會針對quartz的幾個主要類進(jìn)行分析,看一下quartz是如何實現(xiàn)定時調(diào)度功能
1.1測試Demo
來自官方實例的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