Quartz基础篇(三)Scheduler模块

Scheduler模块

1 .Scheduler作为quart核心控制器的。
核心概念:1.任务,触发器,调度器,
调度器把任务和触发器结合在一起了。

2.Scheduler 使用的是工厂模式:俩种创建方式。

 常用声明式的创建的方式:
           SchedulerFactory  sfact=new StdSchedulerFactory();
    Scheduler scheduler=sfact.getScheduler();
        scheduler.start();

3.Scheduler的常用的函数;

1.Date SchedulerJob(DetailJob,Trigger):就开始调度任务执行的时间

2.void start() :开始进行调度器

3.void standy() :挂起状态,可以进行恢复

4.void shutdown():关闭不能恢复

代码展示:

package com.quartz04;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;



/*****
 * 
 * 功能:
 *  1. JobJDeatil
 *  2. Trigger触发器
 *  3. 进行绑定Scheduler和Job
 * 
 * @author Lw
 * 2017年8月25日
 *
 */
public class HelloScheduler4 {

    /**
     * 方法功能:
     * 
     * 创建者:lw
     * 2017年8月25日 
     *
     * 注意:
     * 测试:
     */
    public static void main(String[] args) throws Exception {

         //0.定义一个简单的JoDetail的方法
        JobDetail jobdetail= JobBuilder.newJob(HelloJob4.class)
                .withIdentity("jobdetail", "group1")
                .build();

        // 1.定义一个Trigge对象
        CronTrigger trigger=(CronTrigger) TriggerBuilder
                .newTrigger()
                .withIdentity("crontrigger", "tgrop1")
                //2.定义简单的计划表:执行的速度和执行的频率的问题
                .withSchedule(
                                //  cron表达式":  0 7 11 ? * * 2017                
                               CronScheduleBuilder.cronSchedule("* * * ? * * 2017")
//                              .withIntervalInSeconds(2)
//                              .repeatForever()
                                  ).build();

        //创建一个schedule的实例的问题。
        SchedulerFactory  sfact=new StdSchedulerFactory();
        Scheduler scheduler=sfact.getScheduler();
        scheduler.start();
        //获取计划开启当前的时间:
        //打印当前的时间; 
           Date date=new Date();
          SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          System.out.println("计划任务开始的时间"+sf.format(date));
         // 将工作流和触发器进行绑定在一起。        
         // scheduler.scheduleJob(jobdetail, trigger);
         // scheduleJob的方法的使用();
            System.out.println("绑定的时间:"+
            sf.format( scheduler.scheduleJob(jobdetail, trigger)));
         // 模拟挂起的状态,类似于线程的调用的方法。
//          Thread.sleep(2000L);
         // 挂起的状态
//          scheduler.standby();
         // 挂起的状态
//          Thread.sleep(2000L);
         // 重新唤醒  
//          scheduler.start();
         // 测试shutdown的方法。
         //  false:表示立即执行关闭程序。
         //  true :表示等job方法执行的完后再执行关闭的程

            scheduler.shutdown(true);
            System.out.println("scheduler is boolean  statu:"+scheduler.isShutdown());
    }

}

你可能感兴趣的:(quartz)