任務調度框架Quartz實現的跑批程序(二)

J2EE中用的最多的任務調度框架應該就是Quartz了,最近比較悠閒,就來詳細瞭解一下Quartz;用這個博客來記錄下學習心得,若有錯誤之處,還請各位大神指點。java

1.關鍵接口

  • Scheduler,任務調度的API;它能夠用來啓動或者終止任務等。
  • Job,具體的任務接口;經過實現它,來讓任務調度執行具體的任務。
  • JobDetail ,用來定義Job的實例。
  • Trigger ,觸發器用來定義給定的Job應該如何執行。
  • JobBuilder ,用來定義/構建Jobdetail實例。
  • TriggerBuilder ,用來定義/構建Trigger實例。

2.簡單例子

下面是一個簡單的例子,建立一個簡單的任務調度。 
建立一個Job,名爲HelloJob:框架

public class HelloJob implements Job{

    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        System.out.println("hello job, "+ DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
    }

}

實現Job接口中的execute方法,這個方法中是咱們須要任務調度執行的具體內容,這裏咱們只簡單打印「hello job」字符串和當前時間。ide

而後咱們就能夠編寫一個測試類,來執行Job。 
首先,建立JobDetail:學習

JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                .withIdentity("helloJob", "group1")
                .build();

而後,建立Trigger:測試

Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger","group1")
                .startNow()
                .withSchedule(
                    SimpleScheduleBuilder.simpleSchedule()
                    //每5s運行一次
                    .withIntervalInSeconds(5)
                    //重複運行3次
                    .withRepeatCount(3)
                ).build();

最後,獲取Scheduler,並啓動任務:ui

SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//添加job,以及其關聯的trigger
scheduler.scheduleJob(jobDetail, trigger);
//啓動job
scheduler.start();

運行結果,以下圖: spa

相關文章
相關標籤/搜索