1. 程式人生 > >Java定時框架quartz簡介

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();
    }

}