Java定時框架quartz簡介
我們在寫Java程式中經常會寫一些定時執行的任務,例如每天執行一次什麼方法,幾分鐘或者幾個小時呼叫一次儲存過程等等
Quartz的三個核心概念:
任務:執行工作的內容,Quartz提供job介面來支援任務定義
觸發器:定義觸發job執行的事件觸發規則,Quartz提供Trigger類及其子類支援觸發功能
排程器:Quartz提供Scheduler介面,將工作任務和觸發器繫結,保證任務可以在正確的時間執行
建立任務:
public class myJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("this is a QuartzJob"+
new Date() + " by " + context.getTrigger().getName());
}
}
排程任務:為了排程此任務執行,需要先得到一個Schedule例項,然後建立一個包含任務資訊的JobDetail,最後建立一個Trigger管理任務的執行。
public class Scheduling {
public static void main(String[] args)throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//定義一個JobDetail,任務名,任務組,任務執行類
JobDetail jobDetail = new JobDetail("myJob",
Scheduler.DEFAULT_GROUP, myJob.class);
//定義一個Trigger,觸發器名,觸發器組
SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger",
Scheduler.DEFAULT_GROUP);
simpleTrigger.setStartTime(new Date(System.currentTimeMillis()));
simpleTrigger.setRepeatInterval(5000);
simpleTrigger.setRepeatCount(10);
//加入這個排程
scheduler.scheduleJob(jobDetail, simpleTrigger);
//啟動
scheduler.start();
}
}