quartz原理分析1----介紹

    quartz是一個分佈式任務調度框架。最初是由OpenSymphony(大概2010年網站已關閉)開發,現已被Terracotta於2009年收購,目前一直在持續更新中。(最新的版本是2.3.x,於2017年4月份發佈,最新的master分支最後提交時間是2017年10月)

    quartz使用非常簡單,使用調度器(schedule)調度特定的job和trigger即可。

    quartz有內存模式和數據庫模式,默認是內存模式。如果使用數據庫模式需要配置quartz.properties,關於配置信息參考官方文檔。quartz.properties使用時只需要放置在類加載路徑下。

    使用方式如下:

    引入jar包

 <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>   

   使用Demo

    啓動調度任務(一般是數據庫模式,直接運行數據庫中已經存在的調度任務)

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

    SchedulerFactory sf = new StdSchedulerFactory();

    Scheduler scheduler = sf.getScheduler();

    scheduler.start();
}

    創建調度任務並運行

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

        SchedulerFactory sf = new StdSchedulerFactory();

        Scheduler scheduler = sf.getScheduler();

        //job
        JobDetail jb = JobBuilder.newJob(RamJob.class).withDescription("description:ram job")
                .withIdentity("ramJob", "ramGroup").build();

        //trigger
        Trigger trigger = TriggerBuilder.newTrigger().withDescription("ram trigger")
                .withIdentity("ramTrigger", "ramTriggerGroup").startAt(new Date(System.currentTimeMillis() + 3 * 1000))
                .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")).build();

        scheduler.scheduleJob(jb, trigger);

        scheduler.start();
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章