近期項目中有用到Quartz,故現在學習Quartz以滿足工作需求。
這裏列出幾個Quartz的Demo,循序漸進的學習Quartz,找出最方便好用的使用方式。
方式一:Maven+Quartz本身Api,實現每隔兩秒打印HelloWorld
1、在pom.xml中加入Quartz的依賴:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency>
2、寫出繼承了Job的實現類
package com.aweiyo.demo.helloQuartz; import java.text.SimpleDateFormat; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class HelloJob implements Job { public void execute(JobExecutionContext arg0) throws JobExecutionException { Date date = new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); System.err.println("當前時間爲:==========" + sf.format(date)); System.out.println("hello quartz..."); } }
3、寫出Scheduler。
package com.aweiyo.demo.helloQuartz; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class HelloScheduler { public static void main(String[] args) throws SchedulerException { // 創建JobDetail實例,將該實例與HelloJob綁定 JobDetail jobDetail = JobBuilder.newJob(HelloJob.class) .withIdentity("aweiyoJob", "group1").build(); // 創建一個Trigger實例 Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("aweiyoTrigger", "group1").startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(2).repeatForever()) .build(); // 創建Scheduler實例 SchedulerFactory sfact = new StdSchedulerFactory(); Scheduler scheduler = sfact.getScheduler(); scheduler.start(); scheduler.scheduleJob(jobDetail, trigger); } }