Quartz是OpenSymphony开源组织的一个开源项目,定时任务框架,纯Java语言实现,最新版本为2.3.0。html
Quartz中使用的设计模式以下:java
1.Builder模式设计模式
2.Factory模式框架
3.组件模式ide
4.链式模式ui
1.调度器:schedulerspa
2.任务:JobDetail设计
3.触发器:Trigger,包括SimpleTrigger和CronTriggercode
实现每隔1秒打印一个Hello Worlderorm
1.建立Maven项目,添加依赖:
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
2.建立HelloWorldJob类
package quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.text.SimpleDateFormat; import java.util.Date; /** * created by Java-Road * created in 2018/5/26 */ public class HelloWorldJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { String strTime = new SimpleDateFormat("HH-mm-ss").format(new Date()); System.out.println( strTime + ":Hello World!"); } }
3.建立MyScheduler类
package quartz; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; /** * created by Java-Road * created in 2018/5/26 */ public class MyScheduler { public static void main(String[] args) throws SchedulerException { //建立调度器Schedule SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); //建立JobDetail实例,并与HelloWordlJob类绑定 JobDetail jobDetail = JobBuilder.newJob(HelloWorldJob.class).withIdentity("job1", "jobGroup1") .build(); //建立触发器Trigger实例(当即执行,每隔1S执行一次) Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("trigger1", "triggerGroup1") .startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()) .build(); //开始执行 scheduler.scheduleJob(jobDetail, trigger); scheduler.start(); } }
讨论群:611262656,一键加群:点击加群