任務類java
package org.quartz.examples.example1; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 定時任務執行Job類,需繼承Job父類 */ public class HelloJob implements Job { private static Logger LOG = LoggerFactory.getLogger(HelloJob.class); //必需要有public修飾的無參構造函數 public HelloJob() { } //一個簡單任務,執行的時候打印一句「Hello World! - 」 public void execute(JobExecutionContext context) throws JobExecutionException { LOG.info("Hello World! - " + new Date()); } }
調度管理類函數
package org.quartz.examples.example1; import static org.quartz.DateBuilder.evenMinuteDate; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.Trigger; import org.quartz.impl.StdSchedulerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; /** * 這個示例將演示如何啓動和關閉Quartz調度器,以及如何調度要在Quartz中運行的做業。 */ public class SimpleExample { Logger LOG = LoggerFactory.getLogger(SimpleExample.class); public void run() throws Exception { // 初始化一個調度工廠,並實例化一個調度類 SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); // 定義一個開始運行時間:下一分鐘 Date runTime = evenMinuteDate(new Date()); // 定義一個Job類,命名爲job1,並綁定到一個名爲group1的組中 JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build(); // 實例化一個觸發器,命名爲trigger1,並綁定到一個名爲group1的組中,Job類運行開始時間爲runTime(下一分鐘) Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build(); // 告訴quartz使用咱們的觸發器來調度任務 scheduler.scheduleJob(job, trigger); LOG.info(job.getKey() + " will run at: " + runTime); // 啓動調度器(在調度器啓動以前,實際上什麼都不能運行) scheduler.start(); // 等待的時間足夠長,使調度程序有機會運行完畢Job做業! try { Thread.sleep(65L * 1000L); } catch (Exception e) { }
/**
* 終止調度。
* 可是若是當前仍然有任務正在運行中,則會等待該任務執行完畢再終止,期間debug信息會打印:
* 21:48:54.965 [main] DEBUG org.quartz.simpl.SimpleThreadPool - Waiting for thread TestScheduler_Worker-1 to shut down
*/ui
scheduler.shutdown(true);spa
} public static void main(String[] args) throws Exception { SimpleExample example = new SimpleExample(); example.run(); } }