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-运行结果: