Quartz是一個開源的做業調度
框架,它徹底由Java
寫成。它有不少特徵,如:數據庫支持,集羣,插件,EJB做業預構 建,JavaMail及其它,支持cron-like表達式
等等。該項目已經被 Terracotta
收購。git
Quartz API關鍵幾個接口以下:github
接口類對象:spring
用於建立示例的對象:數據庫
說多少也不如直接運行代碼出結果來的實際,那就動手了。springboot
pom.xml 配置以下:框架
<!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.0.7.RELEASE</version> </dependency>
job類maven
@Data public class HelloJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); String name = jobDataMap.get("name").toString(); String characteristic = jobDataMap.get("characteristic").toString(); System.out.println("name : " + name); System.out.println("characteristic : " + characteristic); } }
QuartzTest類ide
public class QuartzTest { public static void main(String[] args) throws SchedulerException, ParseException { SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.start(); // 定義job,綁定咱們的定時任務 JobDetail job2 = newJob(HelloJob.class) .usingJobData("name", "張三") .usingJobData("characteristic", "帥3") .build(); // 執行任務,用定義好的觸發器 和 任務 scheduler.scheduleJob(job2, getTrigger6()); } /** * 觸發器當即觸發,而後每隔2秒 觸發一次,22:55:00: */ private static Trigger getTrigger1() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //定義一個任務觸發器 return newTrigger() .withIdentity("job2", "group2") //定點觸發 //.startAt(sdf.parse("2018-09-27 10:27:00")) // 五秒鐘後觸發 .startAt(DateBuilder.futureDate(5, DateBuilder.IntervalUnit.SECOND)) .withSchedule(simpleSchedule() .withIntervalInSeconds(2) .repeatForever()) //.withRepeatCount(0)) .endAt(DateBuilder.dateOf(22, 55, 0)) .build(); }
運行測試類,結果以下:(恭喜你,成功,接下來,就是深刻學習了)學習
10:29:11.012 [MyOneQuartzScheduler_Worker-1] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.6da64b5bd2ee-f1562ba3-b8fa-436d-848e-d6e8ea39c26d name : 張三 characteristic : 帥3
github地址<br/>測試
quartz中文文檔<br>