Quartz初體驗

    quartz初體驗java

    Quartz是一個開源做業調度框架。linux

    看了一下官方的例子,一些簡單的任務執行很是方便,和使用linux裏的contab有點相似。web

    大體就是在你的Job接口實現類裏面,添加一些邏輯到execute()方法。一旦你配置好Job實現類並設定好調度時間表,
quartz就會去準備執行。
框架

    直接看代碼吧ui

    先解決依賴,它須要的依賴比較少。spa

<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
</dependency>
<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz-jobs</artifactId>
      <version>2.2.1</version>
</dependency>

 

下面是主要代碼:code

public class App {

    private static final int SECONDS = 5;  //多少秒執行一次這個任務

    public static void main(String[] args) throws SchedulerException {

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        //配置任務的描述等
        JobDetail job = newJob(MyJob.class)
                .withIdentity("job1", "group1")
                .withDescription("detail")
                .build();

        //配置任務的執行規律等等
        Trigger trigger = newTrigger()
                .withIdentity("trigger1", "group1")
                .startNow()
                .withSchedule(simpleSchedule()
                        .withIntervalInSeconds(SECONDS)
                        .repeatForever())
                .build();

        //組裝好任務
        scheduler.scheduleJob(job, trigger);

        System.out.println("start job");

        //啓動
        scheduler.start();
    }
}

 

任務啓動:xml

/**
 * MyJob
 */

public class MyJob implements Job {

    public MyJob() {
        System.out.println("my job ");
    }

    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("execute");
    }
}

   

    到這裏一個簡單的quartz任務調度就ok了,這是在一個簡單的應用中使用quartz。
    它也能夠放入web中,這裏就不詳解了,註冊監聽器,隨着容器啓動就能夠了,不過要注意的是銷燬的時候要記得清理掉定時任務,接口

相關文章
相關標籤/搜索