Quartz是OpenSymphony提供的強大的開源任務調度(Job scheduling領域)框架,當前版本是2.2.x。Quartz能夠用來建立簡單或爲運行十個,百個,甚至是好幾萬個Jobs這樣複雜的日程序表。Jobs能夠作成標準的Java組件或 EJBs。java
官網是:www.quartz-scheduler.org Download->latest release ->Quartz 2.2.3.tar,gz設計模式
特色:框架
Quartz的設計模式:maven
Quartz的體系結構:分佈式
三個核心概念:調度器/任務/觸發器ide
JobDetail/trigger(SimpleTrigger和CronTrigger)/scheduler工具
重要組成:ui
-------------------------插件
第一個Quartz程序:線程
1-新建Maven工程
2-引入quartz工具包
3-建立HelloJob.java
public class HelloJob implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException { //打印當前的執行時間 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("Current Exec Time is:"+sdf.format(date)); //編寫具體的業務邏輯 System.out.println("Hello Quartz!"); } }
4-建立HelloScheduler.java
public class HelloScheduler { public static void main(String[] args) throws SchedulerException { //建立一個JobDetail 實例,將該實例與HelloJob.class 綁定 JobDetail jobDetail = JobBuilder .newJob(HelloJob.class) .withIdentity("myJob", "group1") .build(); //建立一個Trigger實例,定義該job當即執行,並每隔兩秒鐘重複執行一次,直到永遠 Trigger trigger = TriggerBuilder .newTrigger() .withIdentity("myTrigger", "group1") .startNow() .withSchedule( SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()) .build(); //建立scheduler實例 SchedulerFactory sfact = new StdSchedulerFactory(); Scheduler scheduler = sfact.getScheduler(); scheduler.start(); //綁定jobDetail和trigger scheduler.scheduleJob(jobDetail, trigger); //打印當前時間 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("Start Time is:"+sdf.format(date)); } }
5-運行結果: